无法从 Lambda 访问默认 AWS VPC 内的互联网

问题描述 投票:0回答:3

您好,我正在开发一个 AWS 无服务器应用程序,默认 VPC,其子网附加有互联网网关。我已在默认 VPC 内配置了 lambda 函数。我希望 lambda 能够连接到互联网,因为子网与互联网网关相连。但不幸的是 lambda 函数无法访问互联网。在这种情况下,有人可以帮助从 lambda 访问互联网吗

amazon-web-services serverless-framework serverless amazon-vpc aws-serverless
3个回答
3
投票

default VPC
所有子网都是公共的。这意味着即使您有 NAT,您的 lambda 也无法工作。要使其正常工作,您必须在 default VPC 中创建一个
私有子网
,将其路由表设置为位于公共子网中的 NAT,然后将您的函数放入私有子网中。


0
投票

您可以使用 VPC 端点或 NAT 网关授予您的 VPC Lambda 访问权限以连接到互联网,就像您已经设置的那样,此处也有描述 (https://aws.amazon.com/premiumsupport/knowledge-center/internet -访问 lambda 函数/)。然而,这使您的 Lambda 可以访问互联网,但它不能在另一个方向上工作,即。授予 Lambda 从互联网端访问您的 Lambda 的权限。为此,您需要使用前面的 API 网关等。


0
投票

VPC 内(尤其是公有子网内)的 Lambda 函数在访问互联网方面面临限制。 这主要是由于 AWS Lambda 函数默认缺少公共 IP,导致 Internet 网关拒绝请求。

要解决此问题,您可以采取以下步骤:

  • 建立NAT网关并将其链接到VPC的公有子网。
  • 随后创建路由表,添加一条到NAT网关的路由,目标设置为NAT网关,目的地指定为0.0.0.0/0。
  • 创建子网并将其与新配置的路由表关联。

通过实施这些步骤,公共子网内的 Lambda 函数可以克服公共 IP 固有的缺乏,并获得对互联网的必要访问权限。

参考链接:

© www.soinside.com 2019 - 2024. All rights reserved.