Python Boto3 AWS DynamoDB从表中获取项目而无排序键

时间:2019-01-08 12:54:03

标签: python amazon-web-services lambda amazon-dynamodb boto3

我正在尝试通过AWS Lambda函数更新DynamoDb表中的项目,并且出现以下错误:

  

“ errorMessage”:“调用UpdateItem操作时发生错误(ValidationException):提供的键元素与架构不匹配”,

在定义表时,我尚未定义排序键,并且我的分区键名为“ pipeId”,并且我使用了以下代码:

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('mytable')

response = table.update_item(
    Key={
        'pipeId': pipe_id
        },
    UpdateExpression="set hookId = :r",
    ExpressionAttributeValues={
            ':r': hook_id
        },
    ReturnValues="UPDATED_NEW"
)

如果没有事先设置排序键就无法获取或更新商品?还是我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

我找到了解决方法。

问题是我的主键定义为数字,而我将其插入为字符串,例如“ 3219”;但它不会自动转换。