2016-06-17 14 views
4

Ich entwickle gerade eine Alexa-Fähigkeit, die auf dem Gesundheitswesen basiert. Ich muss also Informationen über Krankheiten, ihre Diagnose und Symptome speichern. Ich habe eine grundlegende Fähigkeit mit Informationen über eine Krankheit in einer Datei erstellt, eine ZIP-Datei erstellt, sie auf AWS Lambda hochgeladen und mich von Amazon zertifizieren lassen. Jetzt muss ich das umfangreicher machen, wo ich Informationen über viele Krankheiten haben muss. Wo kann ich diese riesigen Daten speichern und wie bekomme ich sie von meiner Lambda-Funktion? Wenn die Verwendung von DynamoDB der richtige Weg ist, wie kann ich dann Daten von meiner Lambda-Funktion abrufen? Oder Gibt es einen anderen besseren Weg?Wie speichern Sie die Daten für die Alexa-Fähigkeit, die ich entwickle?

Antwort

3

Wahrscheinlich müssen Sie zuerst die Kontoverknüpfung für Ihre Fertigkeit einrichten. Es kann ein bisschen ein Prozess sein, aber sieh dir diese Seite here an. Ich würde vorschlagen, Google oder Amazon als OAuth-Anbieter zu verwenden.

Kontoverknüpfung ermöglicht die Zuordnung eines bestimmten Benutzers und seines Echos zu einem Eintrag in einer Datenbank, deren Eigentümer Sie sind. Nachdem Sie einen Benutzer mit Ihrer Datenbank verbunden haben, haben Sie zwei Möglichkeiten.

Option 1 ist (ich glaube) Sie können Ihre Datenbank direkt vom Lambda-Service mit einer der verfügbaren Sprachen abfragen.

Option 2, richten Sie einen Webdienst ein, der Informationen in der Datenbank abrufen und festlegen kann, indem er eine Art RESTful-Dienst verwendet, und dann stattdessen Aufrufe an diesen Dienst ausführt.

Es ist nicht einfach, so etwas zu erledigen, aber es ist sehr gut möglich.

Edit: Darüber hinaus, wenn Sie Informationen über eine Vielzahl von Krankheiten bereitstellen möchten, prüfen Sie, ob es eine bereits vorhandene Datenbank von Krankheiten gibt, und ob APIs vorhanden sind, um darauf zuzugreifen. Dies könnte Ihnen viel Zeit sparen.

+0

Was ist, wenn es eine vorhandene Datenbank gibt, die ich über Alexa zugreifen muss, und die Funktionalität ist ziemlich genau die gleiche wie der Fragesteller. Anstatt eine neue DB zu erstellen oder unsere existierende DB auf Dynamo zu migrieren, gibt es eine Möglichkeit, auf meine alte, existierende Datenbank zuzugreifen und MySQL zu benennen? Bitte antworten Sie, danke :) –

+0

Sie können definitiv auf jede beliebige Datenbank innerhalb eines Lambda-Dienstes zugreifen. Es scheint, als ob DynamoDB am einfachsten ist, aber wenn Sie dies zum Beispiel im Knoten tun, können Sie eine Bibliothek hinzufügen, um SQL-Aufrufe durchzuführen. – master565

+0

gibt es eine Möglichkeit, eine einfache Daten (z. B. 16 Zeichen ID) ohne Kontoverknüpfung zu speichern? – hasbi

2

DynamoDB scheint der einfachste Weg zu sein. Fügen Sie einfach die aws-java-sdk-dynamodb-Abhängigkeit hinzu und interagieren Sie mit der Datenbank, indem Sie AmazonDynamoDBClient verwenden, wenn Sie Java verwenden. Sie können die gewünschten Tabellen einfach mit @DynamoDBTable Annotationen definieren. Gehe zu https://console.aws.amazon.com/iam/home?#roles und erstelle eine Rolle und füge die Erlaubnis AmazonDynamoDBFullAccess Erlaubnis hinzu und du bist bereit.