问题描述
您好,我正在开发一个 AWS 无服务器应用程序,默认 VPC,其子网与 Internet 网关相连。我已经在默认 VPC 中配置了我的 lambda 函数。我希望 lambda 能够与互联网连接,因为子网与互联网网关相连。但不幸的是,lambda 函数无法访问互联网。在这种情况下,有人可以帮助从 lambda 访问互联网
解决方法
在 default VPC
所有子网都是公共的。这意味着即使你有 NAT,你的 lambda 也不会工作。要使其正常工作,您必须在您的 default VPC
中创建一个私有子网,将其路由表设置为位于公共子网中的 NAT,然后将您的函数置于私有子网中。
您可以使用 VPC 端点或 NAT 网关授予您的 VPC Lambda 访问权限以连接到互联网,就像您设置的一样,此处也有描述 (https://aws.amazon.com/premiumsupport/knowledge-center/internet-access-lambda-function/)。但是,这使您的 Lambda 可以访问互联网,但它在另一个方向上不起作用,即。授予 Lambda 从 Internet 端到您的 Lambda 的访问权限。为此,您需要使用面向它的 API 网关等。