我正尝试在本地调用一个lambda函数,该函数调用另一个也是本地的lambda函数。
我正在使用sam local start-lambda -t notificationServiceTemplate.yml --docker-network lambda-local --host 0.0.0.0
然后我启动我的消费者lambda,它调用worker 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容器不能访问容器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容器中的网络相同。
按照这个问答here,我已经成功地连接到了dynamodb docker容器。
有没有一种简单的方法可以做到这一点?比如我可以从lambda容器内部调用的lambda容器的主机名,即options.endpoint = "http://lambda:3001/";
发布于 2019-01-10 03:09:37
我已经成功地使用host.docker.internal:PORT将本地的lambda连接到运行django的容器。
https://stackoverflow.com/questions/53244027
复制相似问题