我想使用我在我的ec2实例上运行的python脚本将一些信息添加到我的亚马逊DynamoDB表中,我遇到了这个错误,任何人可以帮助我解决这个问题:
>>> import boto3
>>> import json
>>> dynamodb = boto3.resource("dynamodb")
>>> response = boto3.resource("dynamodb", region_name="eu-west-3")
>>> table = dynamodb.Table('Blocked_IP')
>>> response = table.put_item(
... Item={
... "RULEID": "154",
... "NACLID": "acl-a54846c8",
... "IP": "IP",
... "TIME": "TIME"
... })
Traceback (most recent call last):
File "<stdin>", line 6, in <module>
File "/usr/local/lib/python3.7/site-packages/boto3/resources/factory.py", line 520, in do_action
response = action(self, *args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/boto3/resources/action.py", line 83, in __call__
response = getattr(parent.meta.client, operation_name)(*args, **params)
File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 386, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/local/lib/python3.7/site-packages/botocore/client.py", line 705, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the PutItem operation: One or more parameter values were invalid: Missing the key Blocked_IP in the item
>>>
发布于 2021-09-02 12:36:59
您的DynamoDB表有一个名称为Blocked_IP的主键属性。表中的每条记录都必须具有该属性的值。您试图向表中添加一个没有该属性任何值的记录。
您似乎错误地设置了一个名为IP的属性,而您应该设置一个名为Blocked_IP的属性。
您的代码需要如下所示(将硬编码的值替换为您想要插入的实际值):
response = table.put_item(
Item={
"RULEID": "154",
"NACLID": "acl-a54846c8",
"Blocked_IP": "IP",
"TIME": "TIME"
})https://stackoverflow.com/questions/69030407
复制相似问题