相关疑难解决方法(0)

即使在无服务器yaml中设置了params后,QueryString参数也未得到验证

我通过使用无服务器框架部署的lambda函数配置了API网关.我已经在yaml文件中定义了一些queryStringParameters为true.但是,即使在URL中未传递Required(强制)queryStringParams,请求也会通过该服务.PFB类似的配置.

functions: functionName: name: serviceName handler: handler.handle events: - http: path: /path method: get request: parameters: querystrings: param1: true param2: true

似乎无服务器无法验证param1和param2是否作为queryString传递.我们应该有一个明确的请求验证器吗?是否可以使用无服务器?

aws-lambda serverless-framework

6
推荐指数
1
解决办法
1381
查看次数

AWS API Gateway Serverless 验证请求正文并返回错误消息作为响应

我正在使用Serverless设置 AWS API Gateway 。理想情况下,不应使用 AWS 控制台进行任何配置,仅使用无服务器进行部署。

我想让它验证传入该项目中设置的各种 Lambda 函数的请求主体。应通过将收到的正文与关联的 JSON 模式文件进行比较来完成此验证。在请求格式不正确的情况下,我希望响应指出哪些属性丢失或类型错误。

我找到了serverless-reqvalidator-plugin来解决针对模式进行验证的问题。验证项在资源中进行描述,架构使用serverless-aws-documentation 插件与自定义部分中的验证项相关联,最后使用 reqValidatorName 属性将函数与函数部分中的验证对象相关联。 http 事件。理想情况下,在这里的某个地方,我想设置在发生错误时应在响应中返回什么消息。

// serverless.yml

resources:
   Resources:
      BodyValidation:  
         Type: "AWS::ApiGateway::RequestValidator"
         Properties:
           Name: 'BodyValidation'
           RestApiId: 
             Ref: ApiGatewayRestApi
           ValidateRequestBody: true
           ValidateRequestParameters: false
           /// Ideally, some property about how to dynamically return an error message for invalid requests would be here, or bellow

custom:
  documentation:
// --- cut out api info
    models:
      - name: BodyValidationRequest
        contentType: "application/json"
        schema: ${file(./SampleValidationRequest.json)}

functions:
   SampleValidationFunction:
      //--- cut …
Run Code Online (Sandbox Code Playgroud)

aws-lambda aws-api-gateway aws-serverless

4
推荐指数
1
解决办法
4779
查看次数