从 VPC 中的 AWS Lambda 运行 访问 ECS 容器
Accessing ECS container from AWS Lambda running in VPC
我在 public VPC(无 NAT 网关)中有一个 lambda 函数,它应该调用另一个 ECS 服务,该服务 public 只能通过负载均衡器访问。由于 lambda 函数没有 internet 访问权限,因此无法访问 ECS 服务。我可以以某种方式使用内部网络(特别是现有的负载均衡器)以便我不需要设置 NAT 网关吗?一切都部署到同一个 public 子网。
如果所有内容都部署到 public 子网(或者甚至部署在不同子网但在同一 vpc 中),您可以简单地创建一个新的“内部”负载均衡器。有两种负载均衡器:
- Public
- 内部
此内部负载均衡器将可供您的 lambda 函数使用(通过私有 ip,通过 LB 提供的 DNS 解析)。 (假设您当前的负载均衡器是 public 一个,其 DNS 解析为 public IP。)
我不知道私有 IP 可以通过任何方式访问 public 负载均衡器。
然而,在这一点上,我会问一个看似无关但可能很重要的设计问题:
是什么迫使您将 lambda 函数放在 VPC 的 public 子网中? lambda 函数永远不会有 Public IP,这意味着它永远无法在没有 NAT 网关的情况下访问互联网,无论它位于何处。
一个有趣的后续问题是,是什么阻止您将 lambda 函数放在 VPC 之外,在那里它可以开放访问互联网? :)
我在 public VPC(无 NAT 网关)中有一个 lambda 函数,它应该调用另一个 ECS 服务,该服务 public 只能通过负载均衡器访问。由于 lambda 函数没有 internet 访问权限,因此无法访问 ECS 服务。我可以以某种方式使用内部网络(特别是现有的负载均衡器)以便我不需要设置 NAT 网关吗?一切都部署到同一个 public 子网。
如果所有内容都部署到 public 子网(或者甚至部署在不同子网但在同一 vpc 中),您可以简单地创建一个新的“内部”负载均衡器。有两种负载均衡器:
- Public
- 内部
此内部负载均衡器将可供您的 lambda 函数使用(通过私有 ip,通过 LB 提供的 DNS 解析)。 (假设您当前的负载均衡器是 public 一个,其 DNS 解析为 public IP。) 我不知道私有 IP 可以通过任何方式访问 public 负载均衡器。
然而,在这一点上,我会问一个看似无关但可能很重要的设计问题: 是什么迫使您将 lambda 函数放在 VPC 的 public 子网中? lambda 函数永远不会有 Public IP,这意味着它永远无法在没有 NAT 网关的情况下访问互联网,无论它位于何处。 一个有趣的后续问题是,是什么阻止您将 lambda 函数放在 VPC 之外,在那里它可以开放访问互联网? :)