amazon-web-services - 从运行在 VPC 中的 AWS Lambda 访问 ECS 容器
问题描述
我在公共 VPC(无 NAT 网关)中有一个 lambda 函数,它应该调用另一个 ECS 服务,该服务可通过负载均衡器公开访问。由于 lambda 函数无法访问 Internet,因此无法访问 ECS 服务。我可以以某种方式使用内部网络(特别是现有的负载均衡器),这样我就不需要设置 NAT 网关了吗?一切都部署到同一个公共子网。
解决方案
如果所有内容都部署到公共子网(或者甚至在不同的子网中但在同一个 vpc 中),您可以简单地创建一个新的“内部”负载均衡器。有两种负载均衡器:
- 上市
- 内部的
这个内部负载均衡器将可供您的 lambda 函数使用(通过私有 ip,通过 LB 提供的 DNS 解析)。(假设您当前的负载均衡器是公共负载均衡器,其 DNS 解析为公共 IP。)我不知道公共负载均衡器可以通过私有 IP 访问的任何方式。
然而,在这一点上,我会问一个看似无关但可能很重要的设计问题:是什么迫使您将 lambda 函数放在 VPC 的公共子网中?lambda 函数永远不会有公共 IP,这意味着它永远无法在没有 NAT 网关的情况下访问互联网,无论它放在哪里。一个有趣的后续问题是,是什么阻止您将 lambda 函数放在 VPC 之外,在那里它可以开放访问互联网?:)
推荐阅读
- ios - 通过 Xcode 11.4 推送功能在模拟器上触发 UNNotificationServiceExtension
- flutter - Flutter 启用并聚焦 textformfield
- bash - Bash 测试变量和程序在同一条语句中退出
- xamarin.forms - 从主详细信息中的选项卡式页面导航到登录页面时,应用程序在 iOS13+ 中崩溃
- c++ - 为什么 Valgrind 在不释放 malloc 的内存后不报告任何问题?
- php - MPDF Wordpress 引入变量
- c - 为什么 Windows 和 Linux 有不同的 strdup 实现:strdup() 和 _strdup()?
- python - VBS 使用为当前用户定义的 python COM 类
- python - 按特定键合并字典列表并将不同的值附加到列表中
- graph - Spotfire DenseRank + 过滤器