#terraform #terraform-provider-aws
Вопрос:
Я нахожусь в процессе добавления тегов по умолчанию ко всем нашим ресурсам в terraform со следующими:
provider "aws" { region = var.region default_tags { tags = { terraform_managed = "true" } } }
Теперь, похоже, он хочет воссоздать некоторые из моих экземпляров EC2 из-за обновления пользовательских данных, которые заполняются файлом шаблона.
Есть ли способ игнорировать блоки данных из тегов по умолчанию:
data "template_file" "ec2_user_data" { template = file("${path.module}/templates/user_data.tpl") vars = { region = var.region vr._version = var.vr_version } } ~ user_data = "110437fa31b8fe5795165cf9973be6c5b" -gt; (known after apply) # forces replacement
Это единственное изменение в коде, поэтому ничто другое не может быть причиной этого.
Заранее спасибо за любую помощь.
Комментарии:
1. Поскольку теги не передаются в файл шаблона в качестве входных переменных, фактической основной причиной здесь, скорее всего, является непостоянная внутренняя переменная в шаблоне для пользовательских данных. Пожалуйста, поделитесь шаблоном пользовательских данных. Также рассмотрите возможность обновления
data.template_file
до этойtemplatefile()
функции.
Ответ №1:
Изменение файла data.template_file на файл шаблона() устранило проблему.
Спасибо @matt-schuchard
Ответ №2:
Поскольку источники данных Terraform определяются и управляются вне Terraform, default_tags
в AWS поставщик Terraform не будет влиять на data
источники.
Изменение, показанное в плане, является изменением в user_data.tpl
файле