外部 IP を作成する条件付きの計算モジュールを作成しました。
resource "google_compute_address" "external" {
count = "${var.EXT_IP_CREATE ? 1 : 0}"
name = "${var.NAME}-ext-ip"
address_type = "EXTERNAL"
region = "${var.REGION}"}
コンピューティング インスタンス リソース ブロック内には、次のネットワーク インターフェイス構成があります。
network_interface {
network= "${var.NETWORK}"
network_ip = "${google_compute_address.internal.address}"
access_config {
nat_ip = "${var.EXT_IP_CREATE ? google_compute_address.external.address : 0 }"
}
}
リソース google_compute_address.external が作成されていない場合は、nat_ip を null、つまり 0 に設定する必要があります。
それはうまくいくように見えますが、うまくいきません。
EXT_IP_CREATE を true に設定すると、TF はリソースの作成に成功します。false に設定すると、次のエラーが表示されます。
Error: Error running plan: 1 error(s) occurred:
* module.compute-dbma-dev.google_compute_instance.compute: 1 error(s) occurred:
* module.compute-dbma-dev.google_compute_instance.compute: Resource 'google_compute_address.external' not found for variable 'google_compute_address.external.address'
明示的に nat_ip = 0 を渡すと、TF は空白の値を認識し、外部 IP なしでコンピューティング インスタンスを正常に作成します。
現在、Terraform バージョン Terraform v0.11 を使用しています。おそらく非常に単純な解決策がありますが、私は TF の条件を使い始めたばかりで、ここで立ち往生しています。
前もって感謝します!