AWS Параметр жестко заданной строки запроса Api Gateway - PullRequest
0 голосов
/ 05 августа 2020

Я хочу обернуть сторонний ресурс, чтобы открыть его без токена доступа, который отправляется в качестве параметра запроса.

По этой причине я подумал, что могу использовать шлюз API.

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

Или мой единственный вариант - сделать лямбду для этой цели ...?

Ответы [ 2 ]

1 голос
/ 06 августа 2020

Я использовал terraform для создания такого рода ресурсов. вот пример интеграции API с использованием terraform:

resource "aws_api_gateway_integration" "api_store_get_integration" {
  rest_api_id               = "${aws_api_gateway_rest_api.service_api.id}"
  resource_id               = "${aws_api_gateway_resource.store.id}"
  http_method               = "${aws_api_gateway_method.store_get.http_method}"
  integration_http_method   = "GET"
  type                      = "HTTP_PROXY"
  uri                       = "${var.yext_base_url}entities"
  passthrough_behavior      = "WHEN_NO_MATCH"
  request_parameters = {
    "integration.request.header.api-key"      = "'${var.yext_api_key}'",
    "integration.request.header.content-type" = "'application/json'",
    "integration.request.querystring.filter"  = "method.request.querystring.filter",
    "integration.request.querystring.v"       = "'20191001'"
  }
}

с объяснением:

  1. API получит запрос
  2. Он перешлет запрос получения к определенному uri: var.yext_base_url / entity
  3. Он добавит заголовок api-key к запросу с переменной, переданной terraform
  4. Он добавит заголовок content-type к запросу с stati c value
  5. Он добавит параметр запроса v с stati c value '20191001'

Если вы не знаете о terraform, это инструмент, который читает этот документ и отправляет запросы на AWS для создания ресурсов таким образом, как вы их определили. В случае приведенного выше фрагмента terraform получит две переменные vat.yext_base_url и var.yext_api_key, объединит их значения в конфигурации и создаст ресурсы в AWS.

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

0 голосов
/ 06 августа 2020

Да, это так! Я делал это много раз.

Вам нужно будет создать REST API и использовать тип интеграции HTTP_PROXY.

При настройке интеграции вы можете определить параметры uri и запроса, которые будут отправлено на вашу конечную точку интеграции. В этом случае вы можете добавить параметры запроса в запрос как значения stati c вместо сопоставления из запроса, полученного API.

Дополнительную информацию можно найти здесь и здесь .

...