Dynamo DB: разница между созданием таблицы с и без '--endpoint-url' - PullRequest
0 голосов
/ 29 июня 2019

Я пытаюсь создать приложение с использованием scrapy и сохранить результат в DynamoDB.Документ boto3 предоставил пример кода для создания таблицы: DynamoDB - документация Boto 3

После запуска скрипта я смог увидеть это:

    $ aws dynamodb list-tables
    {
    "TableNames": ["users"]
    }

В этот момент я только что понял, что не загружал DynamoDB, поэтому я скачал и настроил на своем компьютере DynamoDB (загружаемая версия) - Amazon DynamoDB .

После Шаг1: Создать таблицу - Amazon DynamoDB чтобы добавить мою первую таблицу, я получил это:

    $ aws dynamodb list-tables --endpoint-url http://localhost:8000
    {
    "TableNames": "Movies"
    }

Теперь я в замешательстве:

  1. Как мне создать таблицубез запуска загружаемой версии Dynamo DB?
  2. В чем разница между опцией 'endpoint' и без нее?

Поскольку в файле boto3:

    table = dynamodb.create_table(...)

и в AWS Doc:

    dynamodb = boto3.resource('dynamodb', region_name='us-west-2', endpoint_url="http://localhost:8000")

К вашему сведению, у меня нет проблем с доступом к оболочке: http://localhost:8000/shell/

Ответы [ 2 ]

2 голосов
/ 29 июня 2019

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

Ссылка

Это означает, что если вы удалите endpoint_url, таблица будет создана в сервисе Amazon DynamoDB, а при наличии endpoint_url она будет создана в загруженной версии.

1 голос
/ 30 июня 2019

sc0rp1on ответ, конечно, правильный, но в случае, если оригинальный постер нуждается в еще более явном ответе, я подумал, что добавлю некоторые детали:

DynamoDB - это, по сути, служба - база данных, запущенная Amazon в собственных дата-центрах, к которой ваш клиент подключается через HTTP-запросы через Интернет, и вы платите Amazon за каждый запрос. Вам не нужно ничего устанавливать, чтобы использовать этот сервис, но вам нужно его настроить (зарегистрироваться в сервисе, как вы будете платить за него, поместить данные своей учетной записи в файл конфигурации и т. Д.), И я думаю, вы сделал это когда-то в прошлом, или упомянутые вами команды не сработали бы.

Если вы не указываете конечную точку, по умолчанию команды Amazon выглядят в $ HOME / .aws / config (что опять же, что вы, вероятно, ранее настроили и забыли). Например, если у вас есть «region = us-east-1», «URL-адрес конечной точки» автоматически рассчитывается из этого значения и будет «http://dynamodb.us -east-1.amazonaws.com ».

Как вы заметили, вы действительно можете загрузить локальную версию DynamoDB и установить ее на свой компьютер. Это в основном предназначено для тестирования вашего приложения - оно не должно быть полезным для реальной работы с базой данных. Если вы хотите протестировать свое приложение на локальной DynamoDB, установленной на локальном компьютере, вы действительно можете передать URL-адрес конечной точки «http://localhost:8000",, означающий сервер, работающий на текущем компьютере (localhost) на порту 8000.

...