Amazon S3をDynamoDBの代わりに使う

Alexa hosted スキルの場合、一定容量のS3が提供されるので、dbを持ちたいような場合、DynamoDBでなく、S3を使うのが効率的。

ask persistence adapterの読み込み
const persistenceAdapter = require('ask-sdk-s3-persistence-adapter');
スキルビルダーをask persistence adapterを使用して初期化
const skillBuilder = Alexa.SkillBuilders.custom()
    .withPersistenceAdapter(new persistenceAdapter
    .S3PersistenceAdapter({bucketName:process.env.S3_PERSISTENCE_BUCKET}));
S3に保存しているデータを取得
const attributesManager = handlerInput.attributesManager;
const s3Attributes = await attributesManager.getPersistentAttributes() || {};
const items = s3Attributes.hasOwnProperty('Data')? s3Attributes.Data : [];
S3にデータを保存
attributesManager.setPersistentAttributes(sendData);
await attributesManager.savePersistentAttributes();

コメントを残す