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

エンドポイントはラムダ関数によってサポートされており、次のように定義されています。

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)}

現在、REST メソッドごとに 5 つのエンドポイント (POST、GET ID、GET All、PUT、PATCH) を持つ 8 つのエンティティがあります。これらのうち、リクエストバリデーターはメソッド 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