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

AWS Lambda超时返回500错误,如何自定义响应内容?

自定义Lambda超时响应的实现方案

可以自定义Lambda超时后的响应,但Lambda本身超时后进程会被AWS强制终止,无法主动输出自定义响应,必须结合你使用的HTTP API Gateway的错误处理规则来实现。

核心原理

Lambda超时会触发API Gateway的Lambda.Unknown错误类型(归类为5XX错误),我们可以通过API Gateway的网关响应配置,将该错误映射为自定义的状态码和响应内容。

修改SAM模板实现自定义响应

你可以在现有SAM模板中添加HTTP API资源,并配置网关响应规则。以下是修改后的完整示例:

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: 配置自定义超时响应的Lambda与HTTP API Gateway
Resources:
  coreapibackend:
    Type: 'AWS::Serverless::Function'
    Properties:
      Handler: src.main.lambda_handler
      Runtime: python3.8
      CodeUri: .
      MemorySize: 3008
      Timeout: 25
      Role: 'arn:aws:iam::xxx:role/my_lambda'
      VpcConfig:
        SecurityGroupIds:
          - sg-yyy
        SubnetIds:
          - subnet-zzz
      Environment:
        Variables:
          A: B
      Tags:
        Name: my_lambda
      Layers:
        - 'arn:aws:lambda:eu-central-1:ggg:layer:git-lambda2:8'
      RuntimeManagementConfig:
        UpdateRuntimeOn: Auto
      # 关联HTTP API触发事件
      Events:
        ApiGatewayTrigger:
          Type: HttpApi
          Properties:
            ApiId: !Ref CustomHttpApi
            Path: /your-api-path
            Method: ANY

  # 定义HTTP API并配置自定义错误响应
  CustomHttpApi:
    Type: 'AWS::Serverless::HttpApi'
    Properties:
      GatewayResponses:
        # 针对Lambda超时触发的Lambda.Unknown错误配置自定义响应
        Lambda.Unknown:
          StatusCode: 504
          ResponseTemplates:
            application/json: |
              {"code": 504, "message": "请求处理超时,请稍后重试"}
          ResponseParameters:
            Headers:
              Content-Type: "'application/json'"

关键配置说明

  • Lambda.Unknown:精准匹配Lambda超时等未预期错误类型,比通用的DEFAULT_5XX更准确
  • StatusCode:将默认的500改为更贴合场景的504(网关超时)
  • ResponseTemplates:自定义JSON格式的响应内容,可根据业务需求调整文案和结构
  • ResponseParameters:设置响应头,确保客户端能正确解析响应体格式

控制台手动配置(可选)

如果不想修改SAM模板,也可以直接在AWS控制台操作:

  1. 进入API Gateway控制台,找到你的HTTP API
  2. 切换到网关响应标签页
  3. 找到Lambda.Unknown响应类型,点击编辑
  4. 自定义状态码、响应体模板和响应头,保存即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 23:07:42