Serverless框架中API Gateway非Lambda代理集成模板映射失效求助
问题:Serverless框架下Lambda非代理集成的响应模板不生效
我用Serverless框架搭建Lambda函数和API Gateway,部分接口因为要精细控制Cognito返回的claims,所以指定了integration: "lambda"。
我知道非代理Lambda集成默认总是返回200,但可以通过模板映射修改响应。现在遇到的情况是:Serverless已经自动生成了多个响应配置,当Lambda抛出Error("[400] my bad request")异常时,API Gateway能正确返回400状态码,响应体是默认格式:{"errorType": "..", "errorMessage": "[400] my bad request", ...}。
但我尝试添加模板映射规则(比如{"message": $input.json('$.errorMessage')}甚至简单的{"msg": "foo"}),完全没有效果,响应内容和格式都没变化。
附上我的Serverless配置代码:
http: { integration: "lambda", method: 'post', path: 'user/privateAPI', request: {}, cors: true, authorizer: { name: "PrivateAuthorizer", type: "COGNITO_USER_POOLS", arn: { "Fn::GetAtt": ["UserPool", "Arn"], }, claims: ["email"] } }
控制台截图:

内容的提问来源于stack exchange,提问作者yoad w
相关产品推荐
相关产品推荐

