当前位置:  开发笔记 > 编程语言 > 正文

DynamoDB updateItem失败

如何解决《DynamoDBupdateItem失败》经验,为你挑选了1个好方法。

尝试创建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:在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的存在(并且是有效的).谁能看到我在这里做错了什么?



1> Fook..:

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

我没有Key正确传递.

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

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有