Я просмотрел несколько ответов, которые смог найти здесь, на SO, но мне все еще не повезло. Я использую Serverless и пытаюсь выполнить проверку тела запроса для лямбда-функции, используя лямбда-интеграцию шлюза API. После запуска sls offline
и выполнения запроса POST с помощью почтальона, независимо от тела, запрос завершается успешно. Проверка, похоже, вообще не происходит.
Вот что у меня есть ...
serverless.yml:
service: onboard
# plugins
plugins:
- serverless-offline
provider:
name: aws
runtime: nodejs12.x
stage: dev
region: us-east-1
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: '{ "body" : "$input.body" }'
api / onboard. js
const onboard = async (event) => {
const response = {
message: event
};
return response;
};
exports.onboard = onboard;
модели / onboard.schema. json:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://path.to/onboard",
"title": "title",
"description": "description",
"type": "object",
"properties": {
"environment": { "type": "string" },
"git": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"format": "uri",
"pattern": ".git$"
},
"token": { "type": "string" }
},
"required": ["repo", "token"],
"maxProperties": 2
},
"name": { "type": "string" },
"team": {
"type": "string",
"pattern": "(?i)(^red$|^blue$|^green$|^yellow$|^black$|^white$)"
}
},
"additionalProperties": false,
"required": ["name", "team"]
}