【问题标题】:How to access existing Amazon DynamoDB Table?如何访问现有的 Amazon DynamoDB 表?
【发布时间】:2017-12-04 23:02:55
【问题描述】:

一般问题

我已关注this tutorial 从 Android 应用程序创建和访问 Amazon DynamoDB,然后将其调整为在我正在编写的应用程序中使用。尽管我在启动和运行它时遇到了困难,但它的效果很好。但是,我还希望能够使用运行在我的 Raspberry Pi 上的 python 脚本来访问数据库。

我找到了this tutorial,但它似乎只描述了如何与本地 DynamoDB 表进行交互。

具体问题

以下代码连接一个项目并将其写入 DynamoDB 表。我找不到我的 Amazon DynamoDB 的任何类型的端点 URL,只有 ARN,并且没有传递我在应用程序中使用的密码或用户名。

# Helper class to convert a DynamoDB item to JSON.
class DecimalEncoder(json.JSONEncoder):
    def default(self, o):
        if isinstance(o, decimal.Decimal):
            if o % 1 > 0:
                return float(o)
            else:
                return int(o)
        return super(DecimalEncoder, self).default(o)    

dynamodb = boto3.resource('dynamodb', region_name='us-west-2', endpoint_url="http://localhost:8000")    

table = dynamodb.Table('Movies')    

title = "The Big New Movie"
year = 2015    

response = table.put_item(
   Item={
        'year': year,
        'title': title,
        'info': {
            'plot':"Nothing happens at all.",
            'rating': decimal.Decimal(0)
        }
    }
)

我已经搜索了有关连接到 Amazon DynamoDB 实例的任何类型的说明,但我找到的所有内容都描述了一个本地表。如果有人可以针对特定问题提供建议或推荐相关教程,我将不胜感激。

【问题讨论】:

    标签: python-3.x amazon-web-services amazon-dynamodb


    【解决方案1】:

    改变

    dynamodb = boto3.resource('dynamodb',endpoint_url="http://localhost:8000") 
    

    dynamodb = boto3.resource('dynamodb',region_name='REGION') 
    

    其中 REGION 是您的 dynamodb 区域的名称,例如“us-west-2”。然后它将连接到 AWS DynamoDB 实例。

    编辑:如果你还没有这样做,你需要设置你的AWS Credentials。有几种选择。一种选择是使用环境变量

    Boto3 将检查这些环境变量的凭据:

    AWS_ACCESS_KEY_ID 您的 AWS 账户的访问密钥。

    AWS_SECRET_ACCESS_KEY 您的 AWS 账户的密钥。

    【讨论】:

      猜你喜欢
      • 2014-01-19
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 2021-10-28
      • 2018-04-02
      相关资源
      最近更新 更多