1

我试图在本地调用一个 lambda 函数,该函数调用另一个本地的 lambda 函数。

我在用sam local start-lambda -t notificationServiceTemplate.yml --docker-network lambda-local --host 0.0.0.0

然后我启动我的消费者 lambda,它调用工作人员 lambda,

aws lambda invoke --function-name ImportUsageConsumerLambda --endpoint-url http://127.0.0.1:3001

消费者 lambda 函数使用这些参数进行调用,

if (process.env.STACK_ENVIRONMENT == "local" ) {
     options.endpoint = "http://0.0.0.0:3001/";
     options.sslEnabled = false;
 }
 lambda = new AWS.Lambda(options);

它不起作用,因为 lambda 容器无法访问容器外部的 localhost UnknownEndpoint: Inaccessible host: '0.0.0.0\'. This service may not be available in the 'us-west-2\' region.\n,.

我知道使用端点0.0.0.0:3001将不起作用,因为这是start-lambda设置我的主机可访问的 lambda 端点的地方,而不是与 lambda docker 容器中的网络相同的网络。

在此问题和答案之后,我已设法连接到 dynamodb docker容器

有没有一种我想念的简单方法来做到这一点?就像我可以从 lambda 容器内部调用的 lambda 容器的主机名一样,即options.endpoint = "http://lambda:3001/";

4

1 回答 1

-1

我使用 host.docker.internal:PORT 将本地 lambda 连接到运行 django 的容器取得了一些成功。

于 2019-01-09T19:09:36.947 回答