Amazon web services DynamoDB更新项失败

Amazon web services DynamoDB更新项失败,amazon-web-services,amazon-dynamodb,aws-lambda,Amazon Web Services,Amazon Dynamodb,Aws Lambda,试图创建一个Lambda来从一个Kinesis流更新DynamoDB。以下是我的更新声明: var response = dd.updateItem({ 'Key': {'S': payload.identityId}, 'TableName': 'Users', 'UpdateExpression': 'SET testVal = :testVal', 'ExpressionAttributeVal

试图创建一个Lambda来从一个Kinesis流更新DynamoDB。以下是我的更新声明:

var response = dd.updateItem({
            'Key': {'S': payload.identityId},
            'TableName': 'Users',
            'UpdateExpression': 'SET testVal = :testVal',
            'ExpressionAttributeValues': {
                ':testVal': {'S': 'This is a test'}
           }
}
这将生成47条错误消息:

  • InvalidParameterType:预期params.Key['S']为结构

  • 意外参数:在参数中找到意外的键“0”。键['S']

  • 意外参数:在参数中找到意外的键“1”。键['S']
  • 意外参数:在参数中找到意外的键“2”。键['S']
  • 意外参数:在参数中找到意外的键“3”。键['S']

  • 意外参数:在参数中找到意外的键“44”。键['S']
  • 意外参数:在参数中找到意外的键“45”。键['S']“}

Users
表存在且当前为空。我已仔细检查了标识ID是否存在(并且有效)。有人能看出我在这里做错了什么吗?

解决了这个问题。有时候,仅仅发布问题会让你有不同的想法

我没有正确地传递

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