我试图在本地调用一个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容器无法访问容器UnknownEndpoint: Inaccessible host: '0.0.0.0\'. This service may not be available in the 'us-west-2\' region.\n
外部的localhost。
我知道使用端点0.0.0.0:3001
无效,因为start-lambda
设置了主机可访问的lambda端点,并且与lambda docker容器内的网络不同。
按照这个问题,我已经设法连接到dynamodb docker容器并回答here。
有没有一种简单的方法可以使我丢失?
就像我可以在lambda容器内部调用的lambda容器的主机名一样,即options.endpoint = "http://lambda:3001/";
?
答案 0 :(得分:0)
使用host.docker.internal:PORT将我的本地lambda连接到运行django的容器,我获得了一些成功。