我想在python Boto的帮助下访问我的流浪环境中的DynamoDB表。我可以通过AWS CLI访问流浪环境的dynamoDB表,如下所示
aws dynamodb list-tables --endpoint-url http://10.2.1.2:8000 --profile vagrant上面的命令给出了vagrant env中可用的故事列表。
我正在尝试在boto的帮助下连接到流浪汉,如下所示。
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())但是这不能正常工作,因为这个命令给出了以下输出
{u'TableNames': []}连接到流浪环境的正确连接应该是什么?
发布于 2017-05-04 18:52:00
您确定在本地dynamoDB中创建了任何表吗?我只是运行了一下,它就像预期的那样工作。
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)打印密钥
和脚本执行
$ python soscript.py
DynamoDBConnection:192.168.33.30
{u'TableNames': [u'MusicCollection']}您能确认从脚本执行的输出中获得正确的连接吗?
https://stackoverflow.com/questions/43778406
复制相似问题