[英]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.