DynamoDB updateItem失败

Foo*_*ook 3 amazon-web-services amazon-dynamodb aws-lambda

尝试创建Lambda以从Kinesis流更新DynamoDB.这是我的更新声明:

var response = dd.updateItem({
            'Key': {'S': payload.identityId},
            'TableName': 'Users',
            'UpdateExpression': 'SET testVal = :testVal',
            'ExpressionAttributeValues': {
                ':testVal': {'S': 'This is a test'}
           }
}
Run Code Online (Sandbox Code Playgroud)

这会生成47条错误消息:

  • InvalidParameterType:预期params.Key ['S']是一个结构

  • UnexpectedParameter:在params.Key ['S']中找到意外的键'0'

  • UnexpectedParameter:在params.Key ['S']中找到意外的键'1'
  • UnexpectedParameter:在params.Key ['S']中找到意外的键'2'
  • UnexpectedParameter:在params.Key ['S']中找到意外的键'3'

...

  • UnexpectedParameter:在params.Key ['S']中找到意外的键'44'
  • UnexpectedParameter:在params.Key ['S']中找到意外的键'45'"}

Users表存在且当前为空.我已经双重检查了identityID的存在(并且是有效的).谁能看到我在这里做错了什么?

Foo*_*ook 6

想出这个.有时只是发布问题会让你以不同的方式思考它!

我没有Key正确传递.

dd.updateItem({
            'Key': {
                'hashAttributeName': {
                    'S': payload.identityId
                }
            },
            'TableName': 'Users',
            'UpdateExpression': 'SET testVal = :testVal',
            'ExpressionAttributeValues': {
                ':testVal': {'S': 'This is a test'}
            }
        }
Run Code Online (Sandbox Code Playgroud)