启动并连接到容器内的Dynamodb Local

时间:2019-06-06 17:27:05

标签: amazon-web-services amazon-dynamodb dynamo-local amazon-dynamodb-local

我们正在使用Dynamodb Local进行集成测试。它是在容器内启动的,在该容器内,我们需要连接到Dynamodb local。这是DocumentClient初始化的方式:

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

但是,当我尝试连接时,请尝试批量写入,例如doc.batchWrite(buildSetData).promise(),但诺言从未实现。对于那些想知道的人,batchwrite是用JavaScript编写的,.promise()仅返回了JS promise。

但是,当我在docker容器外部本地运行安装程序时,一切运行正常。

TLDR:为什么我无法连接到容器内的DynamoDb Local。

1 个答案:

答案 0 :(得分:0)

问题是由于docker环境没有凭据而导致的。我假设dynamodb-local不需要AWS凭证,即使它未连接到AWS,但dynamodb-local仍然需要它们(实际上,只要存在密钥,它们甚至可以是无意义的凭证)。

TLDR:如果其他人有此问题,只需在docker env中定义以下键:

AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY