【问题标题】:No response from invoke container for FunctionNameFunctionName 的调用容器没有响应
【发布时间】:2021-05-26 23:21:42
【问题描述】:

尝试使用以下命令将 dockerized Lambda 端口转发到我的 localhost

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

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

FunctionName 的调用容器没有响应

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

有什么想法吗?解决方法?

【问题讨论】:

  • 你能传递参数--debug 看看有没有其他可用的信息?另外,它是否适用于本地 Docker(没有--docker-network)?
  • 什么都没有,这似乎是 SAM 的一个已知未解决问题

标签: amazon-web-services lambda aws-sam-cli sam


【解决方案1】:

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

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

您可以进行配置:

模板.yml:

...
Environment:
  Variables:
    ENDPOINT_URL: null

env.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

【讨论】:

    猜你喜欢
    • 2022-10-07
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    相关资源
    最近更新 更多