Запустите и подключитесь к 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