Хотя Amazon предоставляет документацию о том, как подключиться к dynamoDB local с Java, PHP и .Net, нет описания того, как подключиться к localhost: 8000 с использованием Python. Существующая документация в Интернете указывает на использование метода DynamoDBConnection внутри boto.dynamodb2.layer1, но это создает несовместимость между живыми и тестовыми средами, которые используйте протокол boto3 для управления dynamoDB.
В boto3 вы можете сделать запрос к dynamo, используя следующий конструктор и переменные, установленные в среде:
client = boto3.client('dynamodb')
table = client.list_tables()
В то время как пакет boto.dynamodb2.layer1 требует, чтобы вы построили следующее:
client = DynamoDBConnection(
host='localhost',
port=8000,
aws_access_key_id='anything',
aws_secret_access_key='anything',
is_secure=False)
table = client.list_tables()
Хотя можно создать логику, которая определяет правильный конструктор на основе локальной среды, я опасаюсь создания набора методов, которые рассматривают каждый конструктор как один и тот же. Вместо этого я бы предпочел использовать boto3 для всего и уметь устанавливать конечную точку для dynamoDB в переменных окружения. К сожалению, этот параметр в настоящее время не доступен.
Можно ли использовать boto3 для определения локальной конечной точки dynamoDB (например, других языков)? Или любой шанс, что Amazon планирует поддержать эту функцию?