Как передать несколько параметров get в моей лямбда-функции?

#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'"