AWS SAM - проверка правильности запроса в методе API-шлюза по шаблону SAM - PullRequest
1 голос
/ 07 февраля 2020

Я работаю над приложением SAM, имеющим лямбда-функцию с API Gateway в качестве источника события. Конечная точка API - это метод POST, для которого требуется набор параметров в теле запроса. API-шлюз предоставляет нам возможность проверки тела запроса путем указания модели запроса с использованием консоли AWS.

См. Скриншоты ниже AWS Опции консоли:

enter image description here

enter image description here

Мне нужно установить аналогичные параметры с помощью шаблона SAM и иметь возможность связать модель с телом запроса, но не может установить параметр проверки запроса и не может найти какую-либо документацию или Пример также.

Ниже приведен мой шаблон SAM

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Description: SAM Template

Parameters: 
  Stage: 
    Type: String
    Default: dev

Resources:
  MyApiGateway:
    Type: AWS::Serverless::Api
    Properties:
      Name: My AWS Serverless API
      StageName: !Ref Stage
      Models: 
        ExchangeRate: 
          $schema: "http://json-schema.org/draft-04/schema#"
          properties: 
            base: 
              type: string
            target: 
              type: string
          required: 
            - base
            - target
          title: User
          type: object

  ExchangeRateFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: functions/exchange-rate/
      Handler: index.handler
      Runtime: nodejs12.x
      Description: Function to Get Currency Exchange Rate
      MemorySize: 128
      Timeout: 3
      Policies:
        - AWSLambdaBasicExecutionRole
      Events:
        HelloWorld:
          Type: Api
          Properties:
            RestApiId: !Ref MyApiGateway
            Path: /exchange
            Method: POST
            RequestModel:
              Model: ExchangeRate
              Required: true

Outputs:
  ExchangeRateFunction:
    Description: "Exchange Rate Lambda Function ARN"
    Value: !GetAtt ExchangeRateFunction.Arn
  MyApiGateway:
    Description: "My Seed API EndPoint"
    Value: !Sub "https://${MyApiGateway}.execute-api.${AWS::Region}.amazonaws.com/${Stage}"

Документация относится

Пожалуйста, дайте мне знать, как я могу установить опцию «Запросить валидацию» на «Проверка тела» с использованием шаблона SAM. Буду признателен за помощь

1 Ответ

0 голосов
/ 31 марта 2020

Я столкнулся с той же проблемой, по-видимому, этой функции некоторое время не хватает в SAM, как вы можете видеть из предыдущего вопроса:

Как добавить валидатор запроса в AWS шаблон SAM для AWS :: Serverless :: Api?

Также в GitHub было открыто несколько проблем, последняя из которых:

https://github.com/awslabs/serverless-application-model/issues/1403

Я взломал решение, которое включает два дополнительных свойства в спецификации SAM для решения этой проблемы, но я не ожидаю, что оно действительно станет PR. Я могу предоставить дополнительные инструкции, если вы хотите использовать мое разветвленное хранилище для развертывания из развивающейся ветви.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...