Joh*_* D. 3 amazon-web-services amazon-vpc aws-lambda
我有一个 lambda 函数,它只是执行http.getto http://www.google.com。如果我没有 VPC 背后的功能,它工作正常。当我把它放在我的 VPC 中时就会出现问题。
我知道您需要设置 Internet 网关。我这样做了。我的两个子网连接到路由0.0.0.0/0到此 Internet 网关的路由表。这不应该是我需要的全部吗?
无论 Internet 网关的关联如何,该功能仍会挂起。子网的安全组允许所有流量流出0.0.0.0/0".
根据授予对 VPC Lambda 函数的 Internet 访问权限,这是我需要做的一切。
编辑:
添加 VPC 组件的完整列表以明确。
据我所知,我已经完成了 AWS 文档链接中的所有工作,为我的 Lambda 提供了互联网访问。然而,当尝试向外部互联网发出请求时,它仍然永远挂起。
您快到了。您提供的链接直接解决了您的问题:
如果您的函数还需要 Internet 访问(例如,访问公共 AWS 服务终端节点),则您的函数必须使用 NAT 网关或实例
你缺少这个:
您的 VPC 应包含公有子网中的 NAT 网关或实例。
这意味着如果没有 NAT,您的 Lambda 将无法访问互联网 - 即使“它们”位于公共子网中。这就是 lambda 在 VPC 中的基本工作方式。
您提供的完全相同的链接将指导您如何在您的 VPC 和 Lambda 旁边创建此 NAT 网关。
补充答案 - 关于为什么在这种情况下需要 NAT 网关- 是由于:
...您可以使用网络地址转换 (NAT) 网关使私有子网中的实例能够连接到 Internet 或其他 AWS 服务,但阻止 Internet 启动与这些实例的连接...
从aws 文档中提取
请记住:如果您需要 lambdas仅访问互联网- 而不是同一 VPC 中的任何其他资源 - 我建议将它们设为非 VPC,然后它们将具有开箱即用的互联网访问 - 你不会t 支付 NAT 的费用。
| 归档时间: |
|
| 查看次数: |
690 次 |
| 最近记录: |