2016-06-17 2 views
4

В настоящее время я разрабатываю умение Alexa, основанное на медико-санитарной помощи. Поэтому мне нужно хранить информацию о болезнях, их диагнозе и симптомах. Я сделал базовый навык, включая информацию об одной болезни в файле, сделал zip-файл, загрузил его в AWS Lambda и получил сертификат от Amazon. Теперь мне нужно сделать это более обширным, где мне нужно иметь информацию о многих заболеваниях. Где я могу хранить эти огромные данные и как их получить из моей функции Lambda? Если использовать DynamoDB - это правильный путь, то как получить данные из моей функции Lambda? Или Есть ли другой лучший способ?Как хранить данные для умения Alexa, которое я разрабатываю?

ответ

3

Скорее всего, вам нужно сначала настроить учетную запись на свой навык. Это может быть немного процесса, но посмотрите эту страницу here. Я бы предложил использовать Google или Amazon в качестве вашего провайдера OAuth.

Учетная запись Учетная запись позволяет связать конкретного пользователя и его эхо с записью в вашей базе данных. Поэтому после того, как у вас есть пользователь, связанный с вашей базой данных, у вас есть два варианта.

Вариант 1 (я считаю), вы можете запросить свою базу данных непосредственно из службы Lambda с использованием любого из доступных языков.

Вариант 2, настройте веб-службу, которая может получать и устанавливать информацию в базе данных с помощью своего рода службы RESTful, а затем совершать вызовы к этой службе.

Это нелегко сделать, но это очень возможно.

Редактировать: Кроме того, если вы хотите предоставить информацию о многих заболеваниях, подумайте о том, есть ли уже имеющаяся база данных болезней, и если существуют API для доступа к ней. Это может сэкономить много времени для вас.

+0

Что делать, если есть существующая база данных, с которой мне нужно получить доступ через alexa, и функциональность практически такая же, как и у искателя. Вместо того, чтобы создавать новую БД или переносить существующую БД на динамо, есть ли способ получить доступ к моей старой, существующей базе данных, именам MySQL? Пожалуйста, ответьте, спасибо :) –

+0

Вы можете определенно получить доступ к любой базе данных, которая вам нужна в рамках лямбда-сервиса. Похоже, что DynamoDB является самым простым, но если вы, например, делаете это в узле, вы можете включить библиотеку для выполнения SQL-вызовов. – master565

+0

есть ли способ хранения простых данных (например: около 16 символов char) без использования привязки аккаунта? – hasbi

2

DynamoDB, пожалуй, самый простой способ. Просто добавьте зависимость aws-java-sdk-dynamodb и взаимодействуйте с базой данных, используя AmazonDynamoDBClient, если вы используете Java. Вы можете просто определить таблицы, которые вы хотите, используя аннотации @DynamoDBTable. Перейдите на страницу https://console.aws.amazon.com/iam/home?#roles и создайте роль и добавьте разрешение AmazonDynamoDBFullAccess, и все вы настроены.