Запустите и подключитесь к Dynamodb Local в контейнере

Мы используем Dynamodb Local для тестирования интеграции. Он запускается внутри контейнера, и в этом контейнере нам нужно подключиться к локальному Dynamodb. Вот как инициализируется DocumentClient:

const doc = new AWS.DynamoDB.DocumentClient({
  region: 'localhost',
  endpoint: 'http://localhost:5000/'
});

Однако, когда я пытаюсь подключиться, попробуйте batchwrite, вот так doc.batchWrite(buildSetData).promise(), обещание никогда не выполняется. Для тех, кто интересуется, пакетный текст на JavaScript, и .promise() только что вернул обещание JS.

Однако, когда я запускаю свою настройку локально (за пределами контейнера Docker), все работает отлично.

TLDR: Почему я не могу подключиться к DynamoDb Local внутри моего контейнера.

1 ответ

Проблема заключалась в том, что в среде докера не было учетных данных. Я предположил, что для dynamicodb-local не понадобятся учетные данные AWS, и, хотя он и не подключается к AWS, Dynamodb-local все еще нуждается в них (на самом деле, они могут даже быть бессмысленными учетными данными, если присутствуют ключи).,

TLDR: Если у кого-то еще есть эта проблема, просто определите следующие ключи в вашей среде докера:

AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
Другие вопросы по тегам