[英]Use DynamoDB with Alexa Lambda function
好吧,我遇到了過去兩天一直在處理的問題,但似乎仍然沒有任何進展。
基本上,我正在嘗試開發一種用於亞馬遜回聲點的技能,但是我的特殊技能要求使用持久性數據。 我查看了文檔,發現了有關帳戶鏈接和DynamoDB的信息,對於一個簡單的研究項目而言,帳戶鏈接似乎很復雜,因此我選擇了DynamoDB。
我使用了一個lambda函數,在我將DynamoDB表行放到上面之前,它運行良好:
alexa.dynamoDBTableName = 'rememberThisDB';
該行完全停止了我的技能工作,並返回以下消息:
The remote endpoint could not be called, or the response it returned was invalid.
老實說,我不知道該如何處理。 我對整個AWS概念完全陌生,所以我什至不知道如何獲取Lambda函數返回的實際錯誤消息。
我更改了角色,並為其進行了以下配置:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"dynamodb:DeleteItem",
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:Scan",
"dynamodb:UpdateItem"
],
"Resource": "*Yes, I did put the correct ARN*"
}
]
}
但這並沒有真正改變任何東西,它仍然只是返回了相同的錯誤。
問題是,我對DynamoDB根本不做任何事情,我只是在定義alexa
對象的dynamoDBTableName
屬性,就是這樣。
是的,DynamoDB表存在。
我覺得我的頭快要炸了,因此對您的幫助將不勝感激。
更新:找到了如何查看日志,這是最新的日志: Error fetching user state: ValidationException: The provided key element does not match the schema
,不確定為什么會出現該錯誤,因為我從未查詢過任何東西,這是我唯一的選擇所做的就是聲明表名。
只是為了在注釋中記錄問題的解決方案,以使該問題不會在SO上保持“未回答”狀態:
假設您正在使用alexa-skills-kit-sdk-for-nodejs,則您的表應具有單個userId字符串HASH鍵 。
var newTableParams = {
AttributeDefinitions: [
{
AttributeName: 'userId',
AttributeType: 'S'
}
],
KeySchema: [
{
AttributeName: 'userId',
KeyType: 'HASH'
}
],
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
}
}
事實證明,用戶沒有針對其DynamoDB表的適當架構設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.