AWS API Gateway 非代理集成未映射

问题描述 投票:0回答:1

我正在使用无服务器框架来生成 Lambda 和 API 网关。
我的一些函数使用 cognito,所以我将它们指定为“integration: lambda”(我知道这不是强制性的,但我希望对返回的声明进行更精细的控制)。

我读到,在非代理 lambda 中,默认行为是始终返回 200,并且可以对其进行修改。我已阅读有关“模板映射”的内容,并且还关注了这两个链接:SO 上的问题 64644447AWS Lambda 的 API 网关集成响应设置。当我开始关注他们时,我注意到“无服务器框架”已经为我生成了几个响应;当抛出

Error("[400] my bad request")
等异常时,响应符合预期(状态代码为 400,响应为
{"errorType": "..", "errorMessage": "[400] my bad request", ...}.

但是,当尝试应用模板映射规则时,没有任何效果,并且响应保持不变。我尝试过:

{"message": $input.json('$.errorMessage')}
甚至
{"msg": foo"}
,但没有效果。附上lambda yaml和AWS控制台的照片:

  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"]
    }
  }

aws-lambda aws-api-gateway serverless-framework
1个回答
0
投票

事实证明我没有部署我的更改。 也许这对于各种博客作者(和官方文档)来说是显而易见的,但对于使用无服务器框架的新手来说 - 这些信息完全缺失!

转到资源 -> 单击“操作”按钮 -> 选择“部署 API”

© www.soinside.com 2019 - 2024. All rights reserved.