首页 > 解决方案 > 如何使用 Alexa SDK DynamoDB 持久性适配器存储全局属性(按技能)

问题描述

Alexa SDK (ask-sdk) 带有一个持久性适配器,允许以半透明的方式将属性作为键/值对存储在 DynamoDB 实例中。我试过了,它为每个用户存储属性,即生成表的主键是用户 ID。这对于存储用户设置很有用,但对于存储全局数据(例如排行榜)没有用。

如何使用此适配器在技能级别(而不是每个用户 ID)全局存储属性?

标签: amazon-dynamodbalexaalexa-skills-kitalexa-skill

解决方案


在这里回答我自己的问题。解决方案是使用更改持久性适配器中的“密钥生成器功能”,该功能基本上告诉适配器使用什么作为数据库中的主键。

这是一个完整的演示,展示了如何使用 Alexa node.js SDK DynamoDB 持久性适配器和 S3 持久性适配器来做到这一点:

https://gist.github.com/germanviscuso/70c979f671660fea811ccfb63801f936

在上面的示例中,密钥生成器函数被更改为返回技能 ID 而不是用户 ID,因此属性随后全局存储(在技能级别),而不是在用户级别。


推荐阅读