簡體   English   中英

Alexa 開發人員控制台 - DynamoDB

[英]Alexa Developer Console - DynamoDB

全新的 AWS,不確定如何繼續...

目標:使用技能使用 DynamoDB 存儲數據。 稍后使用網頁中的 Javascript 引用該數據。

問題:在 Alexa 開發者控制台 ( https://developer.amazon.com/ ) 中,我有我的技能代碼和內置數據庫(代碼選項卡中的數據庫按鈕)。 導航到該數據庫時,我無權執行任何操作(例如為我的網頁獲取 API 密鑰)。 我已經創建了自己的帳戶 ( https://console.aws.amazon.com/ ),其中有一個 DynamoDB,我可以對其進行修改、獲取密鑰等,但我不確定如何將其與我的技能相關聯。

在此先感謝您的幫助。

我的建議是按照以下步驟操作:

添加一個名為 dbHelpers.js 的新文件,以便將 Dynamodb 功能與您的技能分開。 您可以在其中設置如下代碼:

var AWS = require("aws-sdk");
const tableName = "questions";

var dbHelper = function () { };
var docClient = new AWS.DynamoDB.DocumentClient();

dbHelper.prototype.addProduct = (product) => {
    return new Promise((resolve, reject) => {
        const params = {
            TableName: tableName,
            Item: { 
                'name': "T-shirt"
            }
        };
        docClient.put(params, (err, data) => {
            if (err) {
                console.log("Unable to insert =>", JSON.stringify(err))
                return reject("Unable to insert");
            }
            // console.log("Saved Data, ", JSON.stringify(data));
            resolve(data);
        });
    });
}

此代碼正在初始化 DynamoDB 客戶端,以創建新項目到 DB 為例。 您可以閱讀此文檔以獲取更多信息https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.03.html

然后按照您的意圖,在導入幫助文件並將表名設置為常量后,您可以這樣調用它

  return dbHelper.getTrack('0').then((data) => {
    })

並將其添加到您的 Alexa Skill 初始化中

    .withTableName(dynamoDBTableName)
    .withAutoCreateTable(true)
    .lambda();

您缺少適當的 IAM 角色。 或者說是信任關系。

有關更多詳細信息,請參閱本指南: https : //developer.amazon.com/en-US/docs/alexa/hosted-skills/alexa-hosted-skills-personal-aws.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM