【问题标题】:Serverless Response Templates w/ Lambda Integration具有 Lambda 集成的无服务器响应模板
【发布时间】:2020-10-13 14:30:10
【问题描述】:

我已阅读无服务器和 AWS 的文档,但我只是没有得到响应模板。我有一个调用另一个模块的 lambda 函数,该模块将返回一个带有 info 和可能 error 属性的对象。如果错误属性存在,我想抛出一个错误并使用 API Gateway 中的响应模板进行处理。

serverless.yml(不确定400 pattern 中的内容)

functions:
  onboard:
    handler: api/onboard.onboard
    events:
      - http:
          path: /onboard
          method: post
          integration: lambda
          request:
            passThrough: NEVER
            schema:
              application/json: ${file(models/onboard.schema.json)}
            template:
              application/json: $input.body
          response:
            200:
              pattern: ''
            400:
              pattern: '.*"error".*' // WHAT GOES HERE???
              template: $input.path('$.errorMessage')

λ

const onboard = async (event) => {
  // returns an object with info/error property
  const response = await someModule();
  /* example response
  const response = {
    error: 'some error',
    name: event.name
  };
  */
  
  if(response.error) {
    context.done(JSON.stringify(response));
  }

  return response;
};

【问题讨论】:

    标签: node.js aws-lambda aws-api-gateway serverless-framework aws-serverless


    【解决方案1】:

    我错过了statusCodes 属性。

    functions:
      onboard:
        handler: api/onboard.onboard
        events:
          - http:
              path: /onboard
              method: post
              integration: lambda
              request:
                passThrough: NEVER
                schema:
                  application/json: ${file(models/onboard.schema.json)}
                template:
                  application/json: $input.body
              response:
                statusCodes:
                  200:
                    pattern: ''
                  400:
                    pattern: '.*"error".*'
                    template: $input.path('$.errorMessage')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-01
      • 2023-03-04
      • 2017-11-13
      • 1970-01-01
      • 2019-01-12
      • 2018-12-11
      • 1970-01-01
      • 2021-01-20
      相关资源
      最近更新 更多