簡體   English   中英

將DynamoDB與Alexa Lambda函數一起使用

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

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