AWS dynamodb boto3 ResourceNotFoundException:调用 PutItem 操作时发生错误:

San*_*eau 4 python amazon-s3 amazon-dynamodb boto3

我是 AWS 和 DynamoDB 的新手,我正在尝试将数据发送到表。

我正在运行这段代码:

import boto3

db = boto3.resource('dynamodb')
table = db.Table('Whales')

table.put_item(
    Item={
        "id": "1573138502",
        "transaction_type": "transfer",
    })
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Traceback (most recent call last):
  File "/Users/---/Desktop/---/---/test.py", line 6, in <module>
    table.put_item(
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/boto3/resources/factory.py", line 520, in do_action
    response = action(self, *args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/boto3/resources/action.py", line 83, in __call__
    response = getattr(parent.meta.client, operation_name)(*args, **params)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/botocore/client.py", line 357, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/botocore/client.py", line 676, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.errorfactory.ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the PutItem operation: Requested resource not found
Run Code Online (Sandbox Code Playgroud)

我安装了 boto3,我使用 aws cli 识别了自己的身份,我还尝试从 AWS Cloud9 EC2 运行代码,但它不起作用,同样的错误。

我无法从 Python 向数据库发送任何内容,我不明白问题来自何处或是什么原因造成的。

Jae*_*ang 6

您的 DynamoDB 表很可能位于与您的~/.aws/config.

尝试cat ~/.aws/config检查您正在连接的区域。IE us-east-1

使用 AWS 控制台或其他 CLI 工具验证您的 DynamoDB 是否位于同一区域。

从我看来,你的代码不应该在语法上错误。