Попробуйте следующее.
# Instead of "return callback('Bad Request');"
callback(new Error('Bad Request'));
Хотя я не Node
пользователь, я видел эти примеры кодов, использующих объект Error
в Node
.
Для Python
, Я проверяю его, если работаю с вашей конфигурацией serverless
в блоке response
.
raise Exception('Bad Request') # in case of Python
- Правка -
Не знаюдумаю, что у моего serverless.yml
есть разница с вашим, поскольку я только что скопировал вашу часть.
Однако я прилагаю свой тестовый код, надеясь, что он вам поможет.
# serverless.yml
service: "lambda"
provider:
name: aws
runtime: nodejs6.10
region: ap-northeast-2
stage: test
package:
exclude:
- "*/**"
include:
- "handler.js"
functions:
api-test:
handler: handler.functionOne
events:
- http:
method: get
path: fire
integration: lambda
response:
headers:
Content-Type: "'text/html'"
template: $input.path('$')
statusCodes:
400:
pattern: '[\s\S]*Bad Request[\s\S]*'
template: $input.path('$.errorMessage')
headers:
Content-Type: "'text/plain'"
# handler.js
module.exports.functionOne = function(event, context, callback) {
callback(new Error('Bad Request'));
}
# curl
$ curl -X GET https://xxxxxxxx.execute-api.ap-northeast-2.amazonaws.com/test/fire -v
.
.
.
< HTTP/2 400
< content-type: text/plain
< content-length: 11
< date: Mon, 15 Oct 2018 12:40:34 GMT
.
.
.
Bad Request