【发布时间】:2016-05-09 15:57:24
【问题描述】:
我已按照说明正确配置了 AWS CLI,并且我想从高级包 PynamoDB 而不是 boto3 访问 DynamoDB 表。
如果我尝试通过 boto3 和 PynamoDB 都使用的低级 botocore 包访问我的 AWS 集群,并以
身份连接到 DynamoDB 表import botocore.session
session = botocore.session.get_session()
client = session.create_client('dynamodb')
client.describe_table(TableName='my_table_name')
一切正常,表可以正常访问。
但是,我正在尝试按照文档中的教程并为表创建模型来通过 PynamoDB 进行访问,如
from pynamodb.models import Model
class MyTableModel(Model):
class Meta:
table_name = 'my_table_name'
pk_field = UnicodeAttribute(hash_key=True)
field1 = UnicodeAttribute()
field2 = UnicodeAttribute()
并通过模型上的适当方法再次描述表格
print MyTableModel.describe_table()
我得到错误
pynamodb.exceptions.TableDoesNotExist:表不存在:
Requested resource not found: Table: my_table_name not found
我不明白为什么我已经深入研究了 PynamoDB 代码,但我似乎明白它应该从 botocore 调用相同的代码并且配置应该是隐式的。
【问题讨论】:
-
您找到解决方案了吗?
-
@NoorJafri 不,最终恢复使用 boto。
-
我通过明确提及 MetaClass 中的区域来修复它。我会回答。
-
查看这个 pynomodb 问题,截至发帖时它仍然处于打开状态github.com/pynamodb/PynamoDB/issues/211
标签: python amazon-web-services amazon-dynamodb botocore