Terraform: Как создать метод POST для шлюза API в root? - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь создать метод POST, используя terraform по URL-адресу root api-шлюза, например https://somehash.execute-api.us-east-1.amazonaws.com/dev, который будет включать в себя этап. Вот часть рассматриваемого плана terraform:

resource "aws_api_gateway_rest_api" "api" {
  name = "submit-dev-gateway-api"
}

resource "aws_api_gateway_resource" "resource" {
  rest_api_id = "${aws_api_gateway_rest_api.api.id}"
  parent_id = "${aws_api_gateway_rest_api.api.root_resource_id}"
  path_part = "submit"
}

resource "aws_api_gateway_method" "post_form" {
  rest_api_id   = "${aws_api_gateway_rest_api.api.id}"
  resource_id   = "${aws_api_gateway_resource.resource.id}"
  http_method   = "POST"
  authorization = "NONE"
}
...

Я попытался изменить path_part на "/", но это не сработало. Я не мог создать ресурс aws_api_gateway_method без aws_api_gateway_resource. Я могу создать POST в root вручную без terraform, который выглядит следующим образом: manual

Когда я использую вышеупомянутый план terraform, я получаю это: terraform

Как мне создать POST в root с помощью terraform?

Ответы [ 2 ]

4 голосов
/ 07 апреля 2020

Ресурс root создается автоматически как часть создания API-интерфейса REST API шлюза. В Terraform идентификатор этого ресурса root предоставляется как атрибут root_resource_id экземпляра ресурса REST API.

Поскольку этот ресурс неявно создается как часть API, нам не нужен отдельный ресурс для этого. Вместо этого мы можем просто прикрепить методы (и другие необходимые нижестоящие объекты) непосредственно к существующему ресурсу root:

resource "aws_api_gateway_rest_api" "api" {
  name = "submit-dev-gateway-api"
}

resource "aws_api_gateway_method" "post_form" {
  rest_api_id   = aws_api_gateway_rest_api.api.id
  resource_id   = aws_api_gateway_rest_api.api.root_resource_id
  http_method   = "POST"
  authorization = "NONE"
}
0 голосов
/ 07 апреля 2020

Вы должны проверить path_part. Попробуйте

path_part   = "{submit}"

Аргумент path_part будет содержать строку, представляющую путь к конечной точке. Читать дальше path_part

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