node.js - 具有 Lambda 集成的无服务器响应模板
问题描述
我已经阅读了无服务器和 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;
};
解决方案
我错过了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')
推荐阅读
- javascript - 使用 React-Konva 在画布上绘制箭头
- php - 使用条件更改挂钩上的订单状态
- javascript - 如何为 promise 数组执行 promise.all,但保留对这些数组的引用?
- javascript - 检索和修改以前分配的事件功能?
- android - 如何修复“AndroidRuntime: FATAL EXCEPTION: main, kotlin.KotlinNullPointerException”?尝试删除存储的数据Sqlite db时出错
- angular - 尝试从获取请求访问数据我得到找不到类型为“对象”的不同支持对象“[对象对象]”
- angular - Angular 在循环中从公司 ID 解析公司名称
- html - 移动设备上的列未居中对齐
- reactjs - React - 单击表上的数据返回错误的行和列索引
- php - 正则表达式不起作用 - 最少 1 个大写字母,最少 3 个小写字母,最少 1 个来自定义组的特殊字符(更多描述)