如何在我的 lambda 函数中传递多个 get 参数?

How to pass multiple get parameters in my lambda function?

我有多个 GET 参数,所以我应该如何传递 lambda 函数以及我的 serverless.yml 看起来如何 like.Currently 下面是配置

serverless.yml

myFunc:
    handler: com.mcm.in.MyHandler
    events:  
     - http:
         path: user
         method: get
         cors: true 

Request:/mylist?page=1&size=10&filter=userId=abc&sort=-userId&version=1554304254262

还有我应该如何调用 sls invoke local?

我试过没有参数,它在无服务器中不起作用

您可以创建一个请求模板,它将使用参数映射您的请求内容,如 the documentation. 中所述 您的函数看起来像这样(如果您想接受 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'')" }'

我已经通过这种方式创建了请求模板,用于在 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'"