如何使用 Alexa SDK DynamoDB 持久性适配器存储全局属性(每个技能)



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

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

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

下面是一个完整的演示,展示了如何使用 Alexa 节点.js开发工具包 DynamoDB 持久性适配器和 S3 持久性适配器执行此操作:

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

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

最新更新