带有 Lambda 集成的无服务器响应模板
Serverless Response Templates w/ Lambda Integration
我已经阅读了无服务器和 AWS 的文档,但我只是没有得到响应模板。我有一个调用另一个模块的 lambda 函数,该模块将 return 一个带有 info
并且可能带有 error
属性 的对象。如果错误 属性 存在,我想抛出错误并在 API 网关中使用响应模板处理它。
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')
我已经阅读了无服务器和 AWS 的文档,但我只是没有得到响应模板。我有一个调用另一个模块的 lambda 函数,该模块将 return 一个带有 info
并且可能带有 error
属性 的对象。如果错误 属性 存在,我想抛出错误并在 API 网关中使用响应模板处理它。
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')