Terraform хочет изменить boot_diagnostics на ноль - PullRequest
0 голосов
/ 01 апреля 2020

При запуске terraform plan , выходные состояния изменяют значение boot_diagnostics, которое установлено на false на null

  - boot_diagnostics {
      - enabled     = false -> null

На портале boot_diagnostics отключены.

При запуске terraform apply ресурс был изменен.

Apply полная! Ресурсы: 0 добавлено, 1 изменено, 0 уничтожено.

Используемые версии: Terraform v0.12.10 + provider.azurerm v1.35.0

Вопрос: почему terraform показывает, что null хотя государство соответствует реальности на портале?

1 Ответ

0 голосов
/ 01 апреля 2020

Я не знаком с этой конкретной c ситуацией, но такого рода вещи обычно возникают из-за того, что провайдер не полностью обрабатывает значения по умолчанию, вставленные удаленным API.

В этом случае кажется, что например, удаленная система устанавливает enabled в false, если это не задано явно, но сам провайдер об этом не знает, и поэтому, когда вы перепланируете, он считает, что необходимо обновить аргумент, чтобы установить enabled обратно в null, который теперь является Terraform, представляет аргумент, который вообще не устанавливается.

Обычный обходной путь для этой ситуации - обновить вашу конфигурацию, чтобы явно установить значение по умолчанию. В этом случае это означает явную установку enabled в вашей конфигурации:

  boot_diagnostics {
    enabled = false
  }

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

В идеале поставщик должен установить значение по умолчанию для аргумента, подобного этому, где «not set» на самом деле не является допустимым значением в удаленном API, но явная установка значения часто является хорошим обходным решением для ситуаций, когда поставщик не является полностью обрабатывает нормализацию / преобразования, сделанные удаленным API.

...