您好,我正在开发一个 AWS 无服务器应用程序,默认 VPC,其子网附加有互联网网关。我已在默认 VPC 内配置了 lambda 函数。我希望 lambda 能够连接到互联网,因为子网与互联网网关相连。但不幸的是 lambda 函数无法访问互联网。在这种情况下,有人可以帮助从 lambda 访问互联网吗
在
default VPC
所有子网都是公共的。这意味着即使您有 NAT,您的 lambda 也无法工作。要使其正常工作,您必须在 default VPC
中创建一个 私有子网,将其路由表设置为位于公共子网中的 NAT,然后将您的函数放入私有子网中。
您可以使用 VPC 端点或 NAT 网关授予您的 VPC Lambda 访问权限以连接到互联网,就像您已经设置的那样,此处也有描述 (https://aws.amazon.com/premiumsupport/knowledge-center/internet -访问 lambda 函数/)。然而,这使您的 Lambda 可以访问互联网,但它不能在另一个方向上工作,即。授予 Lambda 从互联网端访问您的 Lambda 的权限。为此,您需要使用前面的 API 网关等。
VPC 内(尤其是公有子网内)的 Lambda 函数在访问互联网方面面临限制。 这主要是由于 AWS Lambda 函数默认缺少公共 IP,导致 Internet 网关拒绝请求。
要解决此问题,您可以采取以下步骤:
通过实施这些步骤,公共子网内的 Lambda 函数可以克服公共 IP 固有的缺乏,并获得对互联网的必要访问权限。
参考链接: