【发布时间】:2021-01-27 17:46:33
【问题描述】:
我创建了一个运行任务定义的 ecs 服务,该任务定义创建了一个运行烧瓶应用程序的 docker 容器。烧瓶应用通过 http 请求获取图像并返回 ML 模型推理。
由于我希望此服务在生产环境中运行,我创建了一个内部网络负载均衡器,并将其附加到一个 vpc 端点服务。 nlb 正在将请求转发到注册所有 ECS 集群实例的目标组。
我有一个 API 网关,它与配置在同一 vpc 内的 lambda 函数集成,并且我需要从 lambda 访问 ecs 服务(通过 nlb 或 vpc 端点)
*** 但是,由于无法访问端点,我不断收到 python 请求的“超出最大重试次数”。也不是 nlb,也不是 vpc 端点服务。
请帮助我了解问题所在,或建议在生产环境中处理这些请求的其他基础架构。
** docker 容器有效并直接使用 postman 响应,但我需要 postman 发送到 API 网关并从 lambda 获取编辑后的响应。
附上我的一些配置。如果您认为需要更多配置,请告诉我。 谢谢:)
Lambda connection error to endpoint
VPC endpoint service configuration
【问题讨论】:
-
端点是否可以正常工作?我想确认问题仅与 lambda 函数有关?如果您使用 EC2 实例,端点是否工作?
-
是的,我可以直接与实例通信,但无法通过 vpc/nlb 使其工作
-
我会后退一步,只专注于 NLB 和端点服务。不要使用 lambda 或 api 网关。只是 EC2 实例,您可以登录并尝试从那里卷曲端点。一旦你让它工作,然后转到如何使它与 lambda 一起工作。
-
还要检查 HTTPS。从屏幕截图看来,您似乎只使用 HTTP。我认为端点服务在 HTTPS 的端口 443 上运行。所以安全组也需要做相应的修改。
-
之前检查过 HTTP 和 HTTPS。不工作。我做了 ssh 到 ec2 实例,并且卷曲 nlb 生成了一个有效的响应。我只是无法让 lambda 到达它,尽管它在 VPC 中配置并具有 vpcExecution 角色。
标签: amazon-web-services amazon-ecs amazon-vpc endpoint nlb