1

我正在为我的 API 使用 AWS API Gateway 请求验证功能。您可以在此处的文档中查看更多详细信息。为了部署 API,我使用了无服务器框架。以下是serverless.yml的片段。

resources:
  Resources:
    ParameterRequestValidator:
      Type: AWS::ApiGateway::RequestValidator
      Properties:
        Name: ParameterRequestValidator
        RestApiId:
          Ref: ApiGatewayRestApi
        ValidateRequestBody: true
        ValidateRequestParameters: false

端点由 lambda 函数支持,定义如下:

functions:
  configs-create:
    handler: src.handlers.configs.create.handler
    events:
      - http:
          path: /configs
          method: post
          cors: true
          reqValidatorName: ParameterRequestValidator
          request:
            schema:
              application/json: ${file(src/handlers/schemas/config_create.json)}

到目前为止,我有 8 个实体,每个 REST 方法有 5 个端点——POST、GET ID、GET All、PUT、PATCH。其中,请求验证器已附加到方法 POST、PUT 和 PATCH。因此,共有 24 个端点使用请求验证器。

在运行无服务器部署时,我收到以下错误消息:

Serverless Error ---------------------------------------

  An error occurred: ApiGatewayMethodMeasurementDashlocationsIdVarPutValidator - Maximum number of Request Validators for this API has been reached. (Service: AmazonApiGateway; Status Code: 429; Error Code: LimitExceededException; Request ID: xxxx; Proxy: null).

配额文档页面没有提到请求验证器数量的具体限制。另外,我打算有更多的方法,但是,似乎我已经使用请求验证器达到了 24 个函数的限制。

如何绕过此限制并确保无服务器部署命令不会失败?另外,有人知道允许多少个请求验证器吗?

帮助将不胜感激!提前致谢!

4

0 回答 0