Есть ли способ исключить ресурсы из тегов по умолчанию в terraform

#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 файле