尝试创建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']为结构
UnexpectedParameter:意外的键' 0'发现于params.Key [' S']
...
Users
表存在且当前为空。我已经双重检查了identityID是否存在(并且是有效的)。谁能看到我在这里做错了什么?
答案 0 :(得分:6)
想出来了。有时只是发布问题会让你以不同的方式思考它!
我没有正确传递Key
。
dd.updateItem({
'Key': {
'hashAttributeName': {
'S': payload.identityId
}
},
'TableName': 'Users',
'UpdateExpression': 'SET testVal = :testVal',
'ExpressionAttributeValues': {
':testVal': {'S': 'This is a test'}
}
}