AWS Lambda 无法访问私有代理:检查 VPC 路径
第一跳 VPC 连接请使用代理监听地址和端口,并兼顾安全组方向与 DNS 视图。
当 Requests 配置为正向代理时,Lambda 首先连接的是该监听器。443 上的 HTTPS 网站不会把监听 3128 的代理变成第一跳端口 443。
Lambda code → configured VPC path → proxy listener → destination对于托管在 EC2 上的私有代理,应把函数接入预期的 VPC 子网和安全组。Lambda 会为该接入管理网络接口。只要路由和访问控制允许,其他子网同样可用。
| 控制项 | 同一 VPC 内直连路由时对第一跳的要求 |
|---|---|
| 函数安全组 | 到代理监听器的出站 TCP |
| 代理安全组 | 在该端口上允许来自预期函数来源或安全组的入站 TCP |
| 代理进程 | 在可达接口上监听并允许客户端访问 |
仅在函数安全组上放行入站规则,无法授权这条出站客户端连接。路径排查要把路由表和子网网络 ACL 一并纳入。
若使用 Route 53 的私有代理名称,需核对托管区域与 VPC 的关联以及 DNS 配置,包括 enableDnsHostnames 与 enableDnsSupport。笔记本解析成功并不代表 Lambda 的 DNS 视图。记录失败的是代理名还是网站名;把网站改成数字 IP 并不是代理名的修复办法。
这一跳打通后,代理还需要自己的出站路径。把 Lambda 接入公有子网并不会分配公网 IP,也不会自动提供直连互联网;两段连接要分别决定出站方式。