node.js - 带 Lambda 集成的无服务器响应模板

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

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

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

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')

lambda

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;
};

最佳答案

我缺少 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')

关于node.js - 带 Lambda 集成的无服务器响应模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62536275/

相关文章:

node.js - 要求 ('ffi' )在 Electron 应用程序中引发错误

node.js - 在实际调用我的passwordMatch函数之前,Passport 无法通过 "Wrong password"进行身份验证

amazon-web-services - 将 Lambda 函数分配给 serverless.yml 中的特定 VPC ID

amazon-web-services - 使用云形成从 SNS 触发 lambda?

node.js - 问:所有的 promise 和一系列的 promise 似乎都不起作用

node.js - NodeJs 中的中间件总是重定向到同一页面(我猜)

django - 在 GCP 云函数上部署 Django App 无服务器

node.js - 在 AWS ApiGatewayV2 websocket 连接上发出 HTTPs 请求以响应或删除它

amazon-web-services - 无服务器|如何将 Lambda 授权者设置为 None(公共(public) API)

node.js - 将 Lambda 运行时从 Node 8.x 更改为 Node 12.x 后,随机从 AWS API Gateway 收到 502 Bad Gateway 响应