Конфигурирование AWS::Serverless::Api ресурсов для интеграции HTTP_PROXY

Используя консоль, я смог настроить метод API-шлюза для передачи HTTP-запросов с параметром пути в другой URI.

Результат выглядит следующим образом

Это сделало бы так, чтобы мой запрос был отправлен https://example.com с тем же (жадным) параметром пути.

Хотя это было достаточно успешно, мне нужно иметь возможность указать это как ресурс AWS::Serverless::Api в шаблоне облачной информации. Насколько я могу судить, в документации по модели сервера без приложений не упоминается, как этого добиться.

Это можно сделать на сервере без ресурсов, или мне нужно работать с традиционными AWS::ApiGateway::Resource/Method?

1 ответ

Самый простой способ, который я нашел, это создать определение чванства, используя DefinitionBodyВот пример, чтобы вы могли получить представление. Repo

ВАЖНО: если вы используете интеграцию прокси на Lambda, httpMethod метод в x-amazon-apigateway-integration должно быть POST независимо от вашего метода GET, PUT, POST или же DELETE => httpMethod: POST

DefinitionBody: 
    swagger: 2.0
    info:
      title: EventSource API Definition
    paths:
      /events/{id}:
        get:
          summary: Get an event details
          description: Retrieve specific event
          parameters:
          - name: id
            in: path
            required: true
            type: string
          consumes:
            - application/json
          produces:
            - application/json
          x-amazon-apigateway-integration:
            uri:                  
              Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${GetEventsFunction.Arn}/invocations
            responses: {}
            httpMethod: POST
            type: aws_proxy