一千萬個為什麽

搜索

Terraform:有條不紊地忽略? (臨時EC2實例公共IP地址)



我有一些由Terraform管理的EC2實例,在VPC中有公共IP地址。

每次運行Terraform時,我都會根據這些公共IP更新DNS記錄。

我不是一直都需要這些實例,當我關閉它們時,它們當然會丟失它們的公共IP地址。

起初這導致 associate_public_ip_address 變為 false ,而Terraform想要重新創建實例。 lifecycle.ignore_changes 解決了這個問題:

resource "aws_instance" "instance1" {
  associate_public_ip_address = true
  ...

  lifecycle {
    ignore_changes = ["associate_public_ip_address"]
  }
}

resource "cloudflare_record" "record1" {
  domain = "example.com"
  name   = "server1.example.com"
  value  = "${aws_instance.instance1.public_ip}"
  type   = "A"
}

但是...... public_ip 屬性也變為空白;)。這會導致嘗試更新A記錄,但由於無法設置空白記錄而失敗。

所以,我正在嘗試制定一個解決方案。我可以使用彈性IP,我可能會最終使用它,但如果可以的話,我最好避免使用它。我的下一個想法是...有沒有辦法可以有條件地使用 ignore_changes ,因此如果它是空白的話,忽略對DNS記錄的的更改?

您可以推薦其他解決方案嗎?

轉載註明原文: Terraform:有條不紊地忽略? (臨時EC2實例公共IP地址)

一共有 0 個回答: