我创建了一个计算模块,该模块具有创建外部 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 中的条件开始,我被困在这里。
提前致谢!