You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda连接互联网时出现超时问题求助

解决VPC内AWS Lambda访问互联网超时的问题

问题场景:
运行在VPC内的AWS Lambda函数尝试访问互联网(示例代码如下)时出现超时错误。该VPC包含1个公有子网、3个跨可用区的私有子网,对应2个路由表(公有子网关联公有路由表,私有子网关联私有路由表)。

import json
import urllib.request

def lambda_handler(event, context):
    url = "https://www.google.com"
    
    try:
        # Make HTTP GET request
        response = urllib.request.urlopen(url)
        
        # Read response data
        html = response.read().decode("utf-8")
        
        # Log response
        print("Response from", url, ":", html)
        
        return {
            'statusCode': 200,
            'body': json.dumps('Successfully accessed the internet!')
        }
    except Exception as e:
        # Log error
        print("Error:", str(e))
        
        return {
            'statusCode': 500,
            'body': json.dumps('Failed to access the internet!')
        }

核心原因与修复方案

Lambda部署在VPC内时,需依赖正确的网络路由、网关配置才能访问互联网,以下是分场景的排查和修复步骤:

场景1:Lambda部署在私有子网(最常见情况)

私有子网无直接互联网访问路径,必须通过NAT Gateway中转,按以下步骤配置:

  • 创建NAT Gateway:在公有子网中创建NAT Gateway,并分配弹性IP(确保公有子网有可用弹性IP配额)。
  • 更新私有路由表:编辑私有子网关联的路由表,添加规则:0.0.0.0/0 指向刚创建的NAT Gateway。
  • 验证公有子网路由:确保NAT Gateway所在的公有子网路由表已配置0.0.0.0/0指向Internet Gateway(IGW),否则NAT Gateway自身无法访问外网。
  • 检查安全组:Lambda的安全组需允许出站流量到目标端口(示例中为HTTPS的443端口,HTTP则为80端口)。
  • 检查网络ACL:私有子网和公有子网的网络ACL需允许:
    • 出站方向:TCP 443/80端口流量
    • 入站方向:TCP 1024-65535端口的响应流量(外网返回数据包使用这些端口)

场景2:Lambda部署在公有子网

若Lambda部署在公有子网,按以下项排查:

  • 验证公有路由表:确保公有路由表存在0.0.0.0/0指向IGW的路由规则。
  • 安全组/网络ACL检查:同私有子网要求,允许出站443/80流量及对应入站响应端口。
  • 注意:Lambda在公有子网中的ENI不会自动分配公有IP,仍依赖VPC DNS解析能力,若DNS配置错误也会导致域名解析超时。

通用排查项

  • Lambda执行角色权限:确保执行角色拥有ec2:CreateNetworkInterface、ec2:DescribeNetworkInterfaces、ec2:DeleteNetworkInterface权限,否则Lambda无法创建用于联网的弹性网络接口(ENI)。
  • 调整超时时间:Lambda默认超时为3秒,若网络延迟较高,可在控制台“配置”→“常规配置”中将超时调高至10秒或更长。
  • VPC DNS配置:确认VPC的enableDnsSupport和enableDnsHostnames均设为true(VPC控制台→“编辑DNS属性”),否则Lambda无法解析域名导致超时。
  • 基础网络测试:在私有子网启动EC2实例,使用与Lambda相同的安全组和路由表,执行curl https://www.google.com测试,若EC2也无法访问,说明问题出在VPC网络配置而非Lambda本身。

内容的提问来源于stack exchange,提问作者Jana Maamari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 12:12:20