#java #amazon-web-services #path #aws-lambda #serverless-framework
#java #amazon-веб-сервисы #путь #aws-lambda #бессерверный фреймворк
Вопрос:
У меня есть несколько параметров GET, так как я должен передать в лямбда-функции и как бы мой бессерверный.yml выглядит следующим образом.В настоящее время ниже приведена конфигурация
бессерверный.yml
myFunc:
handler: com.mcm.in.MyHandler
events:
- http:
path: user
method: get
cors: true
Request:/mylist?page=1amp;size=10amp;filter=userId=abcamp;sort=-userIdamp;version=1554304254262
Также как я должен вызывать в sls invoke local?
Я пробовал без параметров, это не работает без сервера
Ответ №1:
Вы можете создать шаблон запроса, который будет отображать содержимое вашего запроса, используя параметры, как указано в документации. Ваша функция будет выглядеть примерно так (например, если вы хотите использовать page
параметр:
myFunc:
handler: com.mcm.in.MyHandler
events:
- http:
path: user
method: get
cors: true
integration: lambda
request:
template:
application/json: '{ "page" : "$input.params(''page'')" }'
Ответ №2:
Я создал шаблон запроса таким образом для передачи нескольких параметров в URL
template:
application/json: '{ "userid":"$input.params(''userid'')","activityid":"$input.params(''activityid'')"}'
Вот полный код
functions:
hello:
handler: handler.hello
events:
- http:
path: /
method: get
likes:
handler: handler.likes
events:
- http:
path: /likes
method: get
integration: lambda
reqValidatorName: xMyRequestValidator
request:
passThrough: NEVER
parameters:
querystrings:
userid: true
activityid:true
template:
application/json: '{ "userid":"$input.params(''userid'')","activityid":"$input.params(''activityid'')"}'
response:
headers:
Content-Type: "'application/json'"