Конфигурирование 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