AWS API Gateway Mock集成动态状态码配置HTTP 500错误排查
解决AWS API Gateway Mock API返回请求头值时的500错误
首先咱们直击问题核心:你遇到的Execution failed due to configuration error: Output mapping refers to an invalid method response: $input.params('Moc...错误,本质是集成响应的输出映射要么关联了未定义的方法响应状态码,要么$input.params的语法使用有误,或者Swagger的配置结构没对齐。下面是一步步的排查和修复方案:
1. 先确保Swagger里正确定义了方法响应(Method Responses)
Mock集成的响应必须和你在responses节点下定义的方法响应状态码严格对应。比如你要返回200,就必须明确在方法层级的responses里声明200的响应规则。
给你一个正确的基础配置示例:
swagger: '2.0' info: title: Mock Header Echo API version: '1.0' paths: /echo-header: get: # 必须先定义方法响应的状态码 responses: '200': description: Success response # 如果需要返回自定义响应头,这里也要提前声明,不需要的话可以省略 headers: X-Echoed-Header: type: string x-amazon-apigateway-integration: type: mock # Mock集成必须的请求模板,指定要触发的状态码 requestTemplates: application/json: | {"statusCode": 200} responses: default: # 这里的状态码必须和上面方法响应的200完全匹配(注意是字符串格式) statusCode: '200' responseTemplates: application/json: | # 正确使用$input.params获取请求头的写法 {"echoedHeader": "$input.params('My-Custom-Header')"}
2. 检查$input.params的语法是否正确
获取请求头的语法有两种常用写法,别写错了:
- 直接通过头名称获取:
$input.params('Header-Name'),注意API Gateway会自动把请求头转为小写,但用原始名称也能匹配,不过保险起见可以用全小写的头名。 - 更严谨的写法:
$input.params().header.get('header-name'),比如获取小写的my-custom-header:{"echoedHeader": "$input.params().header.get('my-custom-header')"}
如果语法写错(比如少引号、括号不闭合),API Gateway无法解析模板,也会触发"无效方法响应"的错误。
3. 确保集成响应与方法响应的状态码完全匹配
比如你在方法响应里定义的是字符串格式的'200',集成响应里的statusCode也要用'200',别用数字200(虽然部分场景兼容,但严格遵循规范能避免很多坑)。
另外,如果你用default作为集成响应的匹配键,它会兜底处理所有请求,但必须对应一个已经在方法响应里定义过的状态码。
4. 排查容易遗漏的配置细节
- 别忘了在
requestTemplates里写{"statusCode": 200},这是Mock集成的必填项,用来告诉API Gateway要触发哪个状态的响应。 - 如果需要把请求头作为响应头返回,必须先在方法响应的
headers里声明,再在集成响应的responseParameters里映射,比如:responses: default: statusCode: '200' responseParameters: method.response.header.X-Echoed-Header: "$input.params('My-Custom-Header')" responseTemplates: application/json: | {"message": "Header echoed successfully"}
快速验证修复效果
你可以用API Gateway控制台的"测试"功能,发送一个带自定义头的请求(比如My-Custom-Header: test-value),如果配置正确,应该会返回包含test-value的200响应。
内容的提问来源于stack exchange,提问作者KrimblKrum
相关产品推荐
相关产品推荐

