gpt4 book ai didi

amazon-web-services - 带有 Internet 网关的 VPC 中的 AWS Lambda 函数仍然无法访问 Internet

转载 作者:行者123 更新时间:2023-12-04 02:47:51 25 4
gpt4 key购买 nike

我有一个简单地执行 http.get 的 lambda 函数至http://www.google.com .如果我没有 VPC 背后的功能,它可以正常工作。当我把它放在我的 VPC 中时,问题就发生了。

我知道您需要设置一个 Internet 网关。我这样做了。我的两个子网附加到路由 0.0.0.0/0 的路由表到这个 Internet 网关。这不应该是我所需要的吗?

无论 Internet 网关的关联如何,该功能仍然挂起。子网的安全组允许来自 0.0.0.0/0" 的所有流量.

根据Grant Internet Access to a VPC Lambda Function这就是我应该做的一切。

编辑:

添加要清楚的 VPC 组件的完整列表。

  • 创建了一个新的 VPC (vpc-09*)
  • 创建了一个新子网 (subnet-05*) 指向我的新子网:
  • 路由表,(rtb-0b)。我在子网关联下看到了子网 05*。在 Routes 下,我看到 Destination 0.0.0.0/0 链接到
  • 的目标。
  • 一个新的 NAT 网关 (nat-08*)。此 NAT 网关具有弹性 IP 地址和私有(private) IP 地址。它位于正确的子网中。状态为可用。
  • 此外,我为 Lambda 函数创建了一个新的安全组。这包含一个“所有流量”的出站规则,目标为 0.0.0.0/0

  • 据我所知,我已经完成了 AWS 文档链接中的所有工作,为我的 Lambda 提供互联网访问。然而,当试图向外部互联网发出请求时,它仍然永远挂起。

    最佳答案

    您快到了。您提供的链接直接解决了您的问题:

    If your function also requires internet access (for example, to reach a public AWS service endpoint), your function must use a NAT gateway or instance



    你错过了这个:

    Your VPC should contain a NAT gateway or instance in a public subnet.



    这意味着如果没有 NAT,您的 Lambda 将无法访问互联网——即使“它们”在公共(public)子网中。这就是 lambda 在 VPC 中的基本工作方式。

    完全相同 link您提供的指导您如何与您的 VPC 和 Lambda 一起创建此 NAT 网关。

    补充答案 - 在 为什么需要 NAT 网关 在这种情况下 - 是由于:

    ... you can use a network address translation (NAT) gateway to enable instances in a private subnet to connect to the internet or other AWS services, but prevent the internet from initiating a connection with those instances...

    Extracted from aws docs



    请记住:如果你需要你的 lambda 来访问 只有互联网 - 而不是同一 VPC 中的任何其他资源 - 我建议将它们设为非 VPC,然后他们将可以开箱即用地访问互联网 - 您无需支付 NAT 的成本。

    关于amazon-web-services - 带有 Internet 网关的 VPC 中的 AWS Lambda 函数仍然无法访问 Internet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56589269/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com