Игнорировать определенные теги от местных жителей терраформ - PullRequest
0 голосов
/ 30 сентября 2019

Как я могу игнорировать определенный тег, определенный в переменной locals? Например: я хотел бы игнорировать тег электронной почты для этого ресурса таблицы Dynamodb.

Локальное определение

locals {
  global_tags = {
    email = "xxx.com"
    owner = "xxx"
  }
  common_tags = {
    Name = "live"
  }
}

 lifecycle {
    ignore_changes = [
      read_capacity,
      write_capacity,
      local.global_tags.email
    ]
  }

  tags = merge(local.global_tags,local.common_tags,var.received_nexgen_events_tags)

}

Подробности:

Terraform v0.12.0
+ provider.aws v2.30.0

Я пробовал это, но получил ошибку

Ошибка: неподдерживаемый атрибут

в ../../../../tf_module_dynamodb/events.tf строка 22, в ресурсе "aws_dynamodb_table" "events": 22: local.global_tags.email

Этот объект не имеет аргумента,вложенный блок или экспортированный атрибут с именем «local».

2: я тоже пытался вот так, получил ссылку на статическую переменную, что такое ссылка на статическую переменную?

 lifecycle {
    ignore_changes = [
      read_capacity,
      write_capacity,
      local.global_tags["xxx.com"]
    ]
  }


error :
 22:       local.global_tags["xxx.com"]

A static variable reference is required.

1 Ответ

0 голосов
/ 30 сентября 2019

Что ж, в terraform есть ошибка> 0.12 версия

Применительно к плану terraform и применению terraform будет сказано, что он собирается добавить tag.email, однако он будет игнорировать tag.email, когда команда terraform apply имеетзапустить.

Я протестировал с использованием состояния terraform rm --target = resource-name и выполнил импорт, а затем показал состояние terraform с именем resource-name, tag.email не был импортирован (был проигнорирован)!

Подробнее: https://github.com/hashicorp/terraform-plugin-sdk/issues/167M

  lifecycle {
    ignore_changes = [
      read_capacity,
      write_capacity,
      tags.email  
    ]
  }
...