Как включить ApiKeyRequired для метода API?

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

Я пытался использовать swagger, но это, похоже, не работает:

    swagger: "2.0"
    info:
      title: !Ref AWS::StackName

    paths:
      "/machines/{resourceid}":
        get:
          parameters: 
            - name: resourceid 
              in: path 
              type: string 
              required: true 
          x-amazon-apigateway-integration:
            httpMethod: POST
            type: aws_proxy
            uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyLambda.Arn}/invocations
            responses: {}
          security:
            - authorizer: []

    securityDefinitions:
      authorizer:
        type: apiKey
        name: Authorization
        in: header

Какие-либо предложения?


person user3492652    schedule 15.05.2018    source источник


Ответы (1)


Следующее определение чванства работает:

  DefinitionBody:
    swagger: "2.0"
    info:
      title: !Ref AWS::StackName
    x-amazon-apigateway-api-key-source : "HEADER"
    paths:
      "/machines/{resourceId}":
        get:
          parameters: 
            - name: resourceId 
              in: path 
              type: string 
              required: true 
          x-amazon-apigateway-integration:
            httpMethod: POST
            type: aws_proxy
            uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MessagingServiceTestHandler.Arn}/invocations
            responses: {}
          security:
            - api_key: []                      
    securityDefinitions:
      api_key:
        type: "apiKey"
        name: "x-api-key"
        in: "header"

Имя заголовка ключа API должно быть x-api-key, а не стандартным заголовком авторизации.

person user3492652    schedule 15.05.2018
comment
Привет @ user3492652, у меня была похожая проблема, не могли бы вы помочь мне с этим stackoverflow.com/questions/52936126/ - person Private; 23.10.2018
comment
Да, он активировал ключ API, но не каждый раз мне запрещали - person Madeo; 27.09.2019