我正在使用 Flask,并且想要将项目插入到 DynamoDB 表中,endpoint_url应该是什么?



我将 DynamoDB 和我的表定义为:

dynamodb = boto3.resource('dynamodb', region_name='us-east-2', endpoint_url="https://dynamodb.us-east-2.amazonaws.com")
table = dynamodb.Table('Customers')

在进行一些处理后,我能够以编程方式获取这 4 个属性的值。单击按钮(并执行一些最终返回 URL 的其他操作)后,我想调用这个table.put_item函数。但是,我收到 500 内部服务器错误。

table.put_item(
    Item={
            'Name': name,
            'Active': active,
            'Amount': amount,
            'Key': key
        }
    )

AWS 文档基本上建议终端节点应该是这个终端节点,但我肯定错过了一些东西,因为我必须以某种方式指定它应该指向我的 DynamoDB 表。

注意:我链接到的教程确实要求运行aws configure并插入我的密钥。但是,首先,我输入了我的密钥,但它无法进行身份验证。其次,我要添加此功能的 Flask 应用程序部署在 Elastic Beanstalk 实例中,因此我需要找到将其链接用于通用目的而不仅仅是本地测试的方法。

如果您正在与真正的 DynamoDB 服务通信,则不应指定终端节点。它仅与 DynamoDB Local 相关,DynamoDB Local 是一个用于本地测试的本地独立 DynamoDB 模拟器(以降低在真实 DynamoDB 上运行的成本和/或在不需要互联网连接的情况下在本地进行开发)。

只需执行以下操作(与 us-east-2 中真正的 DynamoDB 服务通信):

import boto3
dynamodb = boto3.resource('dynamodb', region_name='us-east-2')
table = dynamodb.Table('Customers')

最新更新