Я использую Flask и хочу вставить элемент в таблицу DynamoDB, каким должен быть endpoint_url? - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть DynamoDB и моя таблица определена так:

dynamodb = boto3.resource('dynamodb', region_name='us-east-2', endpoint_url="https://dynamodb.us-east-2.amazonaws.com")

table = dynamodb.Table('Customers')

и после некоторой обработки я могу программно получить значения для этих 4 атрибутов.Как только кнопка нажата (и выполняет некоторые другие операции, которые в конце возвращают URL), я хочу вызвать эту функцию table.put_item.Тем не менее, я получаю 500 внутренних ошибок сервера.

table.put_item(
    Item={
            'Name': name,
            'Active': active,
            'Amount': amount,
            'Key': key
        }
    )

Документы AWS в основном предполагают, что конечная точка должна быть именно этой, но я определенно что-то упускаю, потому что я должен как-то указать, что она должна указывать на мою таблицу DynamoDB.

Примечание: Учебник, на который я ссылался, просит запустить aws configure и вставить мои ключи.Однако, во-первых, я кладу свои ключи, и он не может пройти проверку подлинности.Во-вторых, приложение Flask, к которому я хочу добавить эту функцию, развернуто в экземпляре Elastic Beanstalk, поэтому мне нужно найти способ связать это для общего назначения, а не только для локального тестирования.

1 Ответ

0 голосов
/ 01 февраля 2019

Не следует указывать конечную точку, если вы разговариваете с реальной службой DynamoDB.Это актуально только для DynamoDB Local , локального автономного симулятора DynamoDB для локального тестирования (для снижения затрат на работу с реальной DynamoDB и / или для локальной разработки без необходимости подключения к Интернету).

Просто сделайте что-то вроде следующего (чтобы поговорить с реальным сервисом DynamoDB в us-east-2):

import boto3
dynamodb = boto3.resource('dynamodb', region_name='us-east-2')
table = dynamodb.Table('Customers')
...