terraform: смена машины ec2 не вызывает смену DNS

У меня есть простой код для настройки многих машин EC2. Он не обновляет DNS-запись после смены машины. Мне нужно запустить его второй раз - только тогда DNS сменится. Что я делаю неправильно?

      resource "aws_instance" "ec2" {
  for_each          = var.instances

  ami               = each.value.ami
  instance_type     = each.value.type
  ebs_optimized     = true
}

resource "cloudflare_record" "web" {
  for_each = var.instances

  zone_id  = var.cf_zone_id
  name     = "${each.key}.${var.env}.aws.${var.domain}."
  value    = aws_instance.ec2[each.key].public_ip
  type     = "A"
  ttl      = 1

  depends_on = [
    aws_instance.ec2
  ]
}

1 ответ

Итак, одна особенность Terraform заключается в том, что он предоставляет вашу инфраструктуру, но все, что происходит с вашей инфраструктурой между вашим последним применением и сейчас, не будет отражено в файле состояния Terraform. Если в вашей инфраструктуре действительно есть изменения, вы увидите это в следующем плане Terraform. В том, что вы делаете, нет ничего плохого, только вы могли неправильно понять Terraform. Есть изящная концепция под названием «Неизменяемая инфраструктура». Прочтите это в блоге Hashicorp: https://www.hashicorp.com/resources/what-is-mutable-vs-immutable-infrastructure

Другие вопросы по тегам