带有 VPC 的 AWS Lambda 无法与互联网通信

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

我创建示例 Lambda,使用 vpc-privatepublic.yaml 创建 VPC (https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html),将 Lambda 连接到 VPC,然后进行测试互联网访问:Lambda 内部网络 IP 如 169.254.50.5(不在 VPC 范围内),并且 Lambda 应用程序无法连接到互联网

为了测试这个,我使用简单的 python 代码:

   try: socket.create_connection(("8.8.8.8", 53), timeout=1) return("Success!!!") except OSError: return("No internet")

amazon-web-services aws-lambda amazon-vpc
1个回答
0
投票

当您将 Lambda 函数部署到 VPC 时,它不会获得公共 IP 地址。这意味着它无法与 VPC 之外的任何内容进行通信。

以下是解决此问题的选项:

  1. 如果您将 VPC 切换到 IPv6,您的 Lambda 函数将获得公共 IP 并可以访问互联网。
  2. 如果您添加 NAT 网关,并将 Lambda 函数移动到具有到 NAT 网关的路由的私有 VPC 子网,则这些函数将可以访问 Internet。
  3. 如果您的 Lambda 函数实际上不需要访问 VPC 内的任何内容,那么到目前为止解决您的问题的最简单方法就是从 Lambda 函数中删除 VPC 配置,然后它将可以访问互联网。
© www.soinside.com 2019 - 2024. All rights reserved.