首页 > 解决方案 > FunctionName 的调用容器没有响应

问题描述

尝试使用以下命令将dockerized Lambda端口转发到我的本地主机:

$ sam local start-api --docker-network host

每次尝试访问 Lambda 时都会出错:

FunctionName 的调用容器没有响应

也尝试使用host.docker.internalhost.docker.local网络但没有成功。

有任何想法吗?解决方法?

标签: amazon-web-serviceslambdaaws-sam-clisam

解决方案


这似乎不起作用,但使用主机的 IP 地址确实......

假设您的主机的 IP 地址是 192.168.1.111 。你可以从你的 Lambda 中使用它来攻击你的主机

您可以使其可配置:

模板.yml:

...
Environment:
  Variables:
    ENDPOINT_URL: null

环境.json:

{
  "Parameters":{
    "ENDPOINT_URL":"http://192.168.1.111:5000"
  }
}

lambda_function.py:

...
default_sns_endpoint = f'https://sns.{os.environ["AWS_REGION"]}.amazonaws.com'
endpoint_url = os.environ.get("ENDPOINT_URL", "") or default_endpoint

sns = boto3.client("sns", endpoint_url=endpoint_url)
...

启动 SAM:

sam local invoke --env-vars env.json

推荐阅读