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

如何通过CloudFormation(CFT)在APIGW中配置Method Response HTTP Status: Proxy

问题根因

  • 多余的MethodResponses配置覆盖了Lambda代理集成的默认透传逻辑
  • Lambda调用权限的资源匹配范围不包含{proxy+}对应的子路径请求

修复步骤

1. 删除代理方法中的MethodResponses配置

对于AWS::ApiGateway::Method类型的apiGatewayLambdaResourceMethod资源,删除整段MethodResponses配置即可。Lambda代理集成会自动透传后端Lambda返回的所有响应头、状态码、响应体,无需手动声明方法响应,删除后控制台就会显示HTTP Status: Proxy的标识,和你手动在控制台创建的配置一致。

修改后的方法配置示例:

apiGatewayLambdaResourceMethod:
  Type: 'AWS::ApiGateway::Method'
  Properties:
    AuthorizationType: NONE
    RestApiId: !Ref apiGateway
    ResourceId: !Ref apiGatewayLambdaResource
    HttpMethod: ANY
    Integration:
      Type: AWS_PROXY
      IntegrationHttpMethod: POST
      Uri: !Sub 
        - >-
          arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${lambdaArn}/invocations
        - lambdaArn: !GetAtt lambdaFunction.Arn
# 删除原来的MethodResponses整段配置

2. 修正Lambda调用权限的匹配范围

你当前的lambdaApiGatewayInvoke权限只匹配根路径的请求,需要修改SourceArn最后加上通配符*,匹配所有子路径的请求:

lambdaApiGatewayInvoke:
  Type: AWS::Lambda::Permission
  Properties:
    Action: lambda:InvokeFunction
    FunctionName: !GetAtt lambdaFunction.Arn
    Principal: apigateway.amazonaws.com
    SourceArn: !Sub arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${apiGateway}/${apiGatewayStageName}/${apiGatewayHTTPMethod}/*

验证

完成以上两处修改后重新部署CloudFormation栈,再次调用API Gateway的任意子路径即可正常返回Lambda的响应结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:48:00