Условный ресурс уничтожается, если для параметра count установлено значение 0 - PullRequest
1 голос
/ 04 июня 2019

У меня есть требование интеграции VNET / службы приложений. Это требует создания VPN-шлюза.

Как только интеграция завершена, сертификат (сгенерированный службой приложений) связывается с конфигурацией «точка-узел» шлюза VPN.

Если мне нужно еще раз запустить terraform, потому что мне нужно внести некоторые изменения, он обнаружит, что VPN-шлюз должен быть разрушен, потому что в Azure у него есть сертификат!

Я думал об использовании параметра count на ресурсе VPN-шлюза, но если я установил count = 0 в соответствии с переменной, я получаю ту же проблему.

Любой совет?

1 Ответ

1 голос
/ 04 июня 2019

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

lifecycle {
    ignore_changes = [
        "user_data",
        "instance_type",
        "root_block_device.0.volume_size",
        "ebs_optimized",
        "tags",
    ]
}

Он задан в определении ресурса следующим образом (просто чтобы понять, как разместить его в определении):

resource "aws_instance" "worker_base" {
  count         = "..."
  instance_type = "..."
  user_data     = "..."

  lifecycle {
      ignore_changes = [
        "user_data",
        "instance_type",
        "root_block_device.0.volume_size",
        "ebs_optimized",
        "tags",
      ]
  }

  tags = {
      Name = "..."
  }

  root_block_device {
    delete_on_termination = ..
    volume_size           = "..."
    volume_type           = "..."
  }
}

Теперь из вывода terraform plan вы увидите параметр, который изменился, так что требуется новый ресурс.Попробуйте установить это в списке ignore_changes ...

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