Как я могу установить Запрос валидатора с AWS SAM? - PullRequest
1 голос
/ 15 января 2020

Я определил модель с помощью JSONschema и установил ее в лямбду. Я мог видеть, что модель была добавлена ​​в тело запроса, как показано на рисунке ниже

request method console picture

Но мне также нужно установить запросный валидатор для его проверки. Это мой пример AWS шаблона SAM ниже.

Resources:
  Api:
    Type: "AWS::Serverless::Api"
    Properties:
      StageName: !Ref Environment
      TracingEnabled: false
      EndpointConfiguration: REGIONAL
      Auth:
        Authorizers:
          Auth:
            FunctionPayloadType: TOKEN
            FunctionArn: !GetAtt Auth.Arn
            Identity:
              Header: authorization
      Models:
        RegisterCat:
          $schema: "http://json-schema.org/draft-04/hyper-schema#"
          title: RegisterCat
          type: object
          properties:
            name:
              type: string
              maxLength: 32
            species:
              type: string
              maxLength: 32
            age:
              type: integer
              minimum: 0
              maximum: 100
          required:
            - name
            - species
            - age
  RegisterCat:
    Type: "AWS::Serverless::Function"
    Properties:
      FunctionName: !Join ["-", [example, !Ref Environment, register, cat]]
      CodeUri: register_cat/
      Environment:
        Variables:
          TABLE_NAME: !Join ["-", [!Ref Environment, cat, table]]
      Policies:
        - Statement:
            - Sid: CatTable
              Effect: Allow
              Action:
                - "dynamodb:PutItem"
              Resource: !GetAtt CatTable.Arn
      Events:
        PublicApi:
          Type: Api
          Properties:
            Path: /cat/
            Method: POST
            RestApiId: !Ref Api
            RequestModel:
              Model: RegisterCat
              Required: true

Я вижу, что есть возможность добавить валидатор запроса при создании метода в aws cli или Cloudformation

  put-method
--rest-api-id <value>
--resource-id <value>
--http-method <value>
--authorization-type <value>
[--authorizer-id <value>]
[--api-key-required | --no-api-key-required]
[--operation-name <value>]
[--request-parameters <value>]
[--request-models <value>]
[--request-validator-id <value>]
[--authorization-scopes <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
Type: AWS::ApiGateway::Method
Properties: 
  ApiKeyRequired: Boolean
  AuthorizationScopes: 
    - String
  AuthorizationType: String
  AuthorizerId: String
  HttpMethod: String
  Integration: 
    Integration
  MethodResponses: 
    - MethodResponse
  OperationName: String
  RequestModels: 
    Key : Value
  RequestParameters: 
    Key : Value
  RequestValidatorId: String
  ResourceId: String
  RestApiId: String

Я прочитал документ спецификации SAM в Github несколько раз и попытался установить валидатор запроса. Однако я не мог найти способ настроить его с помощью SAM. Есть ли способ установить валидатор запроса на метод или мне следует запросить функцию в репозитории SAM?

Спасибо, что прочитали мой вопрос.

...