【问题标题】:How to store the data for the Alexa skill I am developing?如何存储我正在开发的 Alexa 技能的数据?
【发布时间】:2016-10-18 21:46:03
【问题描述】:

我目前正在开发一项基于医疗保健的 Alexa 技能。所以我需要存储有关疾病、诊断和症状的信息。我已经掌握了一项基本技能,包括文件中有关一种疾病的信息,制作了一个 zip 文件,将其上传到 AWS Lambda 并获得了亚马逊的认证。现在,我需要在需要了解许多疾病信息的地方扩大范围。我可以在哪里存储这些庞大的数据以及如何从我的 Lambda 函数中检索它?如果使用 DynamoDB 是正确的方法,那么如何从我的 Lambda 函数中检索数据?或者有没有其他更好的方法?

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb aws-lambda alexa


    【解决方案1】:

    您可能需要先为您的技能设置帐户关联。这可能是一个过程,但请查看此页面here。我建议使用 Google 或 Amazon 作为您的 OAuth 提供商。

    帐户链接允许您将特定用户及其回声与您拥有的数据库中的条目相关联。因此,在将用户与数据库链接后,您有两个选择。

    选项 1 是(我相信)您可以使用任何可用语言直接从 Lambda 服务查询您的数据库。

    选项 2,设置一个 Web 服务,该服务可以使用某种 RESTful 服务获取和设置数据库中的信息,然后改为调用该服务。

    这种事情做起来不容易,但是很有可能。

    编辑:此外,如果您希望提供有关许多疾病的信息,请考虑研究是否已有可用的疾病数据库,以及是否存在用于访问它的 API。这可以为您节省大量时间。

    【讨论】:

    • 如果有一个我需要通过alexa访问的现有数据库,并且功能与提问者几乎相同。除了创建新数据库或将现有数据库迁移到发电机之外,有没有办法访问我的旧数据库,即 MySQL?请回复,谢谢:)
    • 您绝对可以在 lambda 服务中访问您想要访问的任何数据库。看起来 DynamoDB 是最简单的,但如果您在节点中执行此操作,则可以包含一个库来进行 SQL 调用。
    • 有什么方法可以在不使用帐户链接的情况下存储简单数据(例如:一些 16 字符 id)?
    • 是的,您可以使用在请求期间提供的用户 ID,并将所有与用户相关的信息通过连接到该 ID 来存储在您的数据库中。
    【解决方案2】:

    DynamoDB 似乎是最简单的方法。如果您使用 Java,只需添加 aws-java-sdk-dynamodb 依赖项并使用 AmazonDynamoDBClient 与数据库交互。您可以使用 @DynamoDBTable 注释定义您想要的表。转到https://console.aws.amazon.com/iam/home?#roles 并创建一个角色并添加权限AmazonDynamoDBFullAccess 权限,一切就绪。

    【讨论】:

      猜你喜欢
      • 2021-02-20
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 2017-08-15
      • 2023-01-02
      相关资源
      最近更新 更多