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

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

我的 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 docs基本上建议端点应该是这个,但我肯定错过了一些东西,因为我必须以某种方式指定它应该指向我的 DynamoDB 表。

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

最佳答案

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

只需执行如下操作(与 us-east-2 中的真实 DynamoDB 服务对话):

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

关于python - 我正在使用 Flask,并且想要将一个项目插入到 DynamoDB 表中,endpoint_url 应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54470412/

相关文章:

json - 获取错误 : Failed to parse Dockerrun JSON file: json: invalid use of , 字符串结构标记,试图将未引用的值解码为 int

amazon-web-services - 如何使用 boto 长时间轮询亚马逊 sqs 服务?

mongodb - 选择 MongoDB 或 DynamoDB 定价

python - 开发者模式扩展在 Chrome 中弹出

python - Pysimplegui 文本元素变量和固定文本

Python 字典键。 "In"复杂度

amazon-web-services - AWS DynamoDB 过滤表达式可按列表中对象中的特定字段进行过滤

python - 使用下划线忽略传递给我们不需要的函数的值是一种好习惯吗?

node.js - AWS Lambda 突然不工作

java - 在 map 上放置多个标记时获取 Latlng 值的无效双 "n\a"