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

AWS应用负载均衡器(ALB)无法转发请求至Lambda的求助

ALB触发Lambda无响应问题排查方案
  • 验证ALB端点基础可达性

    • 用nslookup <ALB-DNS名称>或dig <ALB-DNS名称>检查DNS解析,确认能获取到公网IP。如果解析失败,要么是ALB刚创建未完成DNS同步(等待5-10分钟),要么是VPC的DNS配置异常(检查VPC设置里的DNS服务器是否为Amazon默认DNS)。
    • 执行curl -v http://<ALB-DNS名称>:80测试TCP连接,若连接超时,重点检查ALB安全组是否放行客户端IP的80/443端口流量(ACL放行不代表安全组也放行)。
  • 核对监听器规则配置

    • 确认监听器的转发规则已正确关联Lambda目标组,且规则的匹配条件(路径、主机头等)与你的请求完全匹配。如果规则匹配条件过于严格(比如指定了未命中的路径前缀),会导致请求被直接丢弃。
    • 检查是否配置了默认规则:若无匹配规则,ALB默认返回404,但你当前是无响应状态,需确认默认规则是否存在且动作设置正确。
  • 检查Lambda目标组核心配置

    • 确认目标组的协议版本为HTTP/1.1或HTTP/2,这是ALB触发Lambda的必要条件。
    • 核对目标组的Invocation type设置:若为Event(异步调用),ALB不会等待响应,但至少应生成Lambda日志;优先确认是否设置为RequestResponse(同步调用)。
  • 排查ALB访问日志未生成问题

    • ALB日志存在5-15分钟延迟,先确认是否已等待足够时间。若超时仍无日志,检查存储桶权限:需确保存储桶政策允许ELB服务写入日志,示例政策如下:
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "elasticloadbalancing.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::<你的存储桶名称>/AWSLogs/<你的账户ID>/*"
          }
        ]
      }
      
    • 确认存储桶区域与ALB区域一致,跨区域无法写入日志。
  • 验证Lambda权限配置

    • 检查Lambda执行角色的资源政策,是否允许ALB作为触发器调用函数,示例配置如下:
      {
        "Version": "2012-10-17",
        "Id": "default",
        "Statement": [
          {
            "Sid": "AllowALBInvoke",
            "Effect": "Allow",
            "Principal": {
              "Service": "elasticloadbalancing.amazonaws.com"
            },
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:<区域>:<账户ID>:function:<你的Lambda函数名>",
            "Condition": {
              "ArnLike": {
                "AWS:SourceArn": "arn:aws:elasticloadbalancing:<区域>:<账户ID>:loadbalancer/app/<你的ALB名称>/*"
              }
            }
          }
        ]
      }
      
    • 虽然健康检查能触发Lambda,但需确认该权限政策是否覆盖了ALB的所有调用场景。
  • 复查VPC与子网配置

    • 确认ALB关联的子网为公网子网:即使路由表指向IGW,也要检查子网的Map public IP on launch是否开启,否则ALB的ENI无法获取公网IP,导致外部无法访问。
    • 确认VPC网络ACL的出站规则是否放行ALB的流量:ALB调用Lambda时需要出站权限(若Lambda在VPC内需访问ENI,公网Lambda需访问互联网),确保出站规则允许所有必要流量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:39:18