移入VPC的AWS Lambda出现Runtime.Unknown超时错误求助
AWS Lambda移入VPC后超时(Runtime.Unknown)问题排查方案
核心排查方向
- 子网IP资源耗尽:单个子网的可用IP被占满时,Lambda启动无法分配弹性网络接口(ENI),直接导致超时。去子网控制台查看IP地址使用率,确保预留足够空闲IP给Lambda使用。
- 安全组配置遗漏:
- Lambda安全组需允许出站访问RDS代理的对应端口(如MySQL用3306、PostgreSQL用5432),同时RDS代理的安全组要放通来自Lambda安全组的入站流量。
- 务必确保Lambda安全组允许出站到443端口,即便配置了Lambda服务端点,安全组限制出站也会导致通信失败。
- VPC端点配置不全:仅配置Lambda服务端点不够,Lambda运行时还需访问CloudWatch Logs(上传日志)、X-Ray(若启用追踪)等服务,缺少对应VPC端点会引发超时。需补充以下端点:
com.amazonaws.<你的区域>.logs(CloudWatch Logs)com.amazonaws.<你的区域>.xray(启用X-Ray时必须添加)- 若使用其他AWS服务,需同步添加对应VPC端点
- 路由表配置错误:检查子网的路由表,确认存在指向VPC端点的路由条目。若无该条目,流量会尝试走互联网,而VPC内的Lambda若无公网访问权限,会直接卡壳。
- RDS代理可达性验证:在同VPC内部署EC2实例,测试连接RDS代理的连通性。若EC2也无法连接,问题出在RDS代理或其网络配置,与Lambda无关。
- Lambda执行角色权限缺失:执行角色必须拥有
ec2:CreateNetworkInterface、ec2:DeleteNetworkInterface、ec2:DescribeNetworkInterfaces权限,缺失这些权限会导致Lambda无法创建ENI,进而启动超时。
实用调试技巧
- 启用X-Ray追踪:即便函数超时,X-Ray可能会记录部分执行流程,帮助定位卡顿环节。
- 模拟Lambda网络环境:临时在目标子网部署EC2实例,用
telnet <代理地址> <端口>或nc -zv <代理地址> <端口>命令测试连通性,排查端口是否开放。 - 深挖CloudWatch Logs:函数超时前可能会生成少量初始化日志,仔细查看或许能找到隐藏的错误线索。
内容的提问来源于stack exchange,提问作者floriangosse
相关产品推荐
相关产品推荐

