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かのリリースで利用できますので是非お試しください。