我试图在本地调用一个 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/";
?