Terraform читать подробности существующего ресурса - PullRequest
0 голосов
/ 28 ноября 2018

Я столкнулся с проблемой в terraform, из-за которой я хочу прочитать подробную информацию о существующем ресурсе (r1), созданном через веб-консоль AWS.Я использую эти детали при создании нового ресурса (r2) с помощью terraform.

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

Вот как я это делаю:

main.tf

resource "aws_lb" "r1"{

}

...

resource "aws_api_gateway_integration" "r2" {

  type                    = "HTTP"
  uri                     = "${aws_lb.r1.dns_name}}/o/v1/multi/get/m/content"
}

сначала я импортирую этот ресурс

 terraform import aws_lb.r1 {my_arn}

затем я применяю терраформу

terraform apply

ошибка

 aws_lb.r1: Error deleting LB: ResourceInUse: Load balancer 'my_arn' cannot be deleted because it is currently associated with another service

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Оператор import равен и предназначен для получения контроля над существующими ресурсами в вашей настройке Terraform .

Если ваше единственное намерение заключается в получении информации о существующих ресурсах (вне вашего контроля Terraform), источники данных предназначены специально для этой цели:

data "aws_lb" "r1" {
    name = "lb_foo"
    arn = "some_specific_arn" #you can use any selector you wish to query the correct LB
}

resource "aws_api_gateway_integration" "r2" {
    type = "HTTP"
    uri = "${data.aws_lb.r1.dns_name}/o/v1/multi/get/m/content"
}
0 голосов
/ 28 ноября 2018

Вы можете добавить lifecycle блок конфигурации в resource "aws_lb" "r1" (см .: https://www.terraform.io/docs/configuration/resources.html#lifecycle), чтобы сказать Terraform игнорировать изменения в ресурсе.

Я думаю, что-то вроде этого должно работать:

resource "aws_lb" "r1"{

 lifecycle {
    ignore_changes = ["*"]
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...