如何存储我正在开发的Alexa技能的数据?

时间:2016-06-17 06:58:03

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

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

2 个答案:

答案 0 :(得分:3)

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

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

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

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

完成这类工作并不容易,但这很有可能。

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

答案 1 :(得分:2)

DynamoDB似乎是最简单的方法。如果您使用的是Java,只需添加aws-java-sdk-dynamodb依赖项并使用Arrays.sort(data, new Comparator<String[]>() { @Override public int compare(String[] o1, String[] o2) { return Integer.valueOf(o2[1]).compareTo(Integer.valueOf(o1[1])); } }); 与数据库进行交互。您可以使用AmazonDynamoDBClient注释定义所需的表。转到Java-Doc并创建一个角色并添加权限@DynamoDBTable权限,您就可以了。