当您为 Lambda 启用 VPC 时,AWS 会向您显示以下消息 -
当您启用 VPC 时,您的 Lambda 函数将失去默认的 Internet 访问权限。如果您的函数需要外部 Internet 访问,请确保您的安全组允许出站连接并且您的 VPC 具有 NAT 网关。
因此,请确保您的 lambda 可以通过正确的安全组和 NAT 网关访问互联网。
另请注意,为您的子网设置 IG 是不够的。您需要有一个 NAT 实例或网关以及从您的子网到该网关的路由表中的路由,以便 lambda 具有与自定义 VPC 关联的 Internet 访问权限。
AWS Lambda 使用您提供的 VPC 信息来设置 ENI,以允许您的 Lambda 函数访问 VPC 资源。每个 ENI 都从您指定的子网的 IP 地址范围内分配了一个私有 IP 地址,但没有分配任何公共 IP 地址。因此,如果您的 Lambda 函数需要 Internet 访问(例如,访问没有 VPC 终端节点的 AWS 服务,例如 Kinesis),您可以在您的 VPC 内配置一个 NAT 实例,或者您可以使用 Amazon VPC NAT 网关。您不能使用连接到您的 VPC 的 Internet 网关,因为这要求 ENI 具有公共 IP 地址。
重要:
如果您的 Lambda 函数需要 Internet 访问,请勿将其附加到公有子网或无法访问 Internet 的私有子网。相反,仅将其附加到通过 NAT 实例或 Amazon VPC NAT 网关访问 Internet 的私有子网。
来源:http ://docs.aws.amazon.com/lambda/latest/dg/vpc.html