Я правильно настроил интерфейс командной строки AWS, следуя инструкциям, и хочу получить доступ к таблице DynamoDB из высокоуровневого пакета PynamoDB а не бото3.
Если я попытаюсь получить доступ к своему кластеру AWS через низкоуровневый пакет botocore, который используется как boto3, так и PynamoDB, и подключиться к таблице 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, и конфигурация должна быть неявной.