您好,我正在尝试使用 terraform 获取由 google_compute_instance_template 创建的计算实例的名称和公共 IP 地址,但是在第一个 terraform 应用后第一次读取时我得到一个空列表。 请注意,它在第二个地形应用上运行良好。
main.tf:
resource "google_compute_region_instance_group_manager" "instance_group_manager" {
region = var.region
name = "${var.prefix}-igm-${random_string.random_string.result}"
wait_for_instances = true
version {
instance_template = google_compute_instance_template.instance_template.id
name = "${var.prefix}-tmplt"
}
base_instance_name = "${var.prefix}-${random_string.random_string.result}"
}
输出.tf:
#Get the list of instances
data "google_compute_region_instance_group" "mig_data" {
name = google_compute_region_instance_group_manager.instance_group_manager.name
region = var.region
}
#Get each instance data
data "google_compute_instance" "intance_data" {
count = var.instances_min_grop_size
self_link = data.google_compute_region_instance_group.mig_data.instances[count.index].instance
}
#Print the data needed
output "public_ips" {
value = [
for instance in data.google_compute_instance.intance_data:
[
instance.name, instance.network_interface.0.access_config.0.nat_ip
]
]
}
第一次运行输出:
Error: Invalid index
│
│ on output.tf line 49, in data "google_compute_instance" "intance_data":
│ 49: self_link = data.google_compute_region_instance_group.mig_data.instances[count.index].instance
│ ├────────────────
│ │ count.index is 0
│ │ data.google_compute_region_instance_group.mig_data.instances is empty list of object
│
│ The given key does not identify an element in this collection value: the collection has no elements.
╵
╷
│ Error: Invalid index
│
│ on output.tf line 49, in data "google_compute_instance" "intance_data":
│ 49: self_link = data.google_compute_region_instance_group.mig_data.instances[count.index].instance
│ ├────────────────
│ │ count.index is 1
│ │ data.google_compute_region_instance_group.mig_data.instances is empty list of object
│
第二次运行输出:
public_ips = [
[
"chkp-tf-mig-07m81-97nz",
"35.231.4.112",
],
[
"chkp-tf-mig-07m81-bkj2",
"34.23.235.90",
],
]