首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们如何在本地机器上借助Python boto访问Vagrant环境中的DynamoDB表?

我们如何在本地机器上借助Python boto访问Vagrant环境中的DynamoDB表?
EN

Stack Overflow用户
提问于 2017-05-04 17:03:53
回答 1查看 334关注 0票数 0

我想在python Boto的帮助下访问我的流浪环境中的DynamoDB表。我可以通过AWS CLI访问流浪环境的dynamoDB表,如下所示

代码语言:javascript
复制
aws dynamodb list-tables --endpoint-url http://10.2.1.2:8000 --profile vagrant

上面的命令给出了vagrant env中可用的故事列表。

我正在尝试在boto的帮助下连接到流浪汉,如下所示。

代码语言:javascript
复制
conn = DynamoDBConnection(
                aws_access_key_id="troposphere",
                aws_secret_access_key='troposphere',
                host='10.2.1.2',                          # Host where DynamoDB Local resides
                port=8000,                                  # DynamoDB Local port (8000 is the default)
                is_secure=False)

print (conn)
print (conn.list_tables())

但是这不能正常工作,因为这个命令给出了以下输出

代码语言:javascript
复制
{u'TableNames': []}

连接到流浪环境的正确连接应该是什么?

EN

回答 1

Stack Overflow用户

发布于 2017-05-04 18:52:00

您确定在本地dynamoDB中创建了任何表吗?我只是运行了一下,它就像预期的那样工作。

  • simple Vagrantfile-*-模式: ruby -*- # vi:设置配置: ft=ruby : Vagrant.configure("2") do |
  • | config.vm.box = "ubuntu/trusty64“config.vm.network "private_network",ip:"192.168.33.30”end
  • 从虚拟机运行dynamo并写入磁盘

vagrant@vagrant-ubuntu-trusty-64:/vagrant/dynamodb_local$ java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb使用以下配置初始化DynamoDB本地:端口: 8000 InMemory: false DbPath: null SharedDb: true shouldDelayTransientStatuses: false CorsParams:*

  • 首先检查连接

$ aws dynamodb列表-表--端点url http://192.168.33.30:8000 { "TableNames":[] }

  • 基于示例创建简单集合

"arn:aws:dynamodb:ddblocal:000000000000:table/MusicCollection",@machine:~/project/vagrant/ MusicCollection $ aws create-table --table-name AttributeName=Artist--属性定义fhenri,AttributeType=S AttributeName=SongTitle,AttributeType=S --键模式AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE --预配置-吞吐量ReadCapacityUnits=5,WriteCapacityUnits=5 { "TableDescription":{ "TableArn":fhenri

重要信息这里我们看到它是在本地创建的arn:aws:dynamodb:ddblocal:000000000000

使用命令行界面进行

  • 检查已创建表

$ aws dynamodb列表-表--端点url http://192.168.33.30:8000 { "TableNames":"MusicCollection“}运行简单python脚本的

#!/usr/bin/env python from boto.dynamic odb2.layer1导入DynamoDBConnection conn = DynamoDBConnection( aws_access_key_id=“对流层”,aws_secret_access_key=‘对流层’,host='192.168.33.30',port=8000,is_secure=False)打印(conn)打印密钥

和脚本执行

代码语言:javascript
复制
$ python soscript.py
DynamoDBConnection:192.168.33.30
{u'TableNames': [u'MusicCollection']}

您能确认从脚本执行的输出中获得正确的连接吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43778406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档