ASK SDKでgetPersistentAttributesのデフォルト値が設定可能に(2.8.1以降の予定)

ASK SDKでDBのデータを取得する場合、getPersistentAttribuetsを利用します。 が、初めてスキルを使ったユーザーの場合、そもそもDBにレコードがない状態なので、実装側で初期値の設定が必要でした。 […]

広告ここから
広告ここまで

目次

    ASK SDKでDBのデータを取得する場合、getPersistentAttribuetsを利用します。

    が、初めてスキルを使ったユーザーの場合、そもそもDBにレコードがない状態なので、実装側で初期値の設定が必要でした。

    let attributes = await attributesManager.getPersistentAttributes()
    if (!attributes) {
      attributes = {
        invocationCount: 1
      }
      attributesManager.setPersistenceAttributes(attributes)
    }

    リリース待ち新機能: デフォルト値の設置が可能に

    現在「PRがマージされてリリース待ち」という状態ですが、このgetPersistentAttribuets関数でレコードがなかった場合の初期値を設定できるようになります。

    const attributes = await attributesManager.getPersistentAttributes(true, {
        invocationCount: 1
      }
    )

    後方互換性の関係上、第一引数にはtrueを必ず指定してください。指定しないとgetPersistentAttributes関数をリクエスト内で複数回実行した場合のパフォーマンスが大きく低下する可能性があります。

    参考: ask-sdkでPersistentAttributesを使う場合のキャッシュ管理

    終わりに

    実はS3 Adapterを使った場合にエラーが飛んでくるという問題がまだありますので、その辺は近々PRを出す予定です。

    が、DynamoDBユーザーであれば2.8.1か2.9.0かのリリースで利用できますので是非お試しください。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark