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