无法从Python Lambda函数放入DynamoDB

问题描述

我正在使用Lambda函数来获取数据并将数据放入DynamoDB。

我可以在表中放入一个新项目,但是当我尝试传递除KEY之外的任何内容时,都会出现以下错误:

An error occurred (ValidationException) when calling the UpdateItem operation: 
The provided key element does not match the schema

这有效(仅带钥匙):

"body": "{\"TableName\":\"myExampleTableName\",\"Key\":{\"id\": {\"S\": \"SomeID\"}}}"

这会引发错误(带有密钥和一些数据):

"body": "{\"TableName\":\"myExampleTableName\",\"Key\":{\"id\": {\"S\": \"SomeID\"},\"Data\": {\"S\": \"MyDataExampleData\"}}}"

尽管语法似乎与示例中显示的here相同。

有人看到我在做什么错吗?

这是一种更具可读性的方式:

{
    "TableName":"myExampleTableName","Key":{
        "id": {"S": "SomeID"},"Data": {"S": "MyDataExampleData"}
    }
}

解决方法

“键”内的“数据”字段似乎不正确。如果我们拥有您要放入的表的实际代码和架构,将会更容易理解。

这是一个使用python的示例,您可以看到其中没有“ Key”属性,但有“ Item”(我假设您根据发送的文档使用python)

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.Python.03.html

response = table.put_item(
   Item={
        'year': year,'title': title,'info': {
            'plot': plot,'rating': rating
        }
    }
)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...