Amazon web services DynamoDB更新项失败
试图创建一个Lambda来从一个Kinesis流更新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
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'}
}
}