FunctionName 的调用容器没有响应

MCM*_*tan 5 lambda sam amazon-web-services aws-sam-cli

尝试使用命令将dockerized Lambda转发到我的本地主机

$ sam local start-api --docker-network host
Run Code Online (Sandbox Code Playgroud)

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

FunctionName 的调用容器没有响应

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

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

Nei*_*gan 2

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

假设您的主机的 IP 地址是 192.168.1.111 。您可以使用您的 Lambda 来访问您的主机

您可以将其配置为:

模板.yml:

...
Environment:
  Variables:
    ENDPOINT_URL: null
Run Code Online (Sandbox Code Playgroud)

环境.json:

{
  "Parameters":{
    "ENDPOINT_URL":"http://192.168.1.111:5000"
  }
}
Run Code Online (Sandbox Code Playgroud)

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)
...
Run Code Online (Sandbox Code Playgroud)

启动 SAM:

sam local invoke --env-vars env.json
Run Code Online (Sandbox Code Playgroud)