有没有办法像我使用 aws_subnet_ids 那样列出 GCP VPC 的所有 cidr?
Is there a way to a list of all cidrs for a GCP VPC like I can with aws_subnet_ids?
https://www.terraform.io/docs/providers/aws/d/subnet_ids.html
AWS 提供商使这成为可能:
data "aws_subnet_ids" "example" {
vpc_id = var.vpc_id
}
data "aws_subnet" "example" {
for_each = data.aws_subnet_ids.example.ids
id = each.value
}
output "subnet_cidr_blocks" {
value = [for s in data.aws_subnet.example : s.cidr_block]
}
但是有没有办法用 google_compute_network 和 google_compute_subnetwork 做到这一点? google_compute_subnetwork 支持 self_link 并且 google_compute_network 具有属性 subnetworks_self_links- 我只是不确定如何将它们连接在一起。
好的,我想我明白了
data "google_compute_network" "vpc" {
name = google_compute_network.default-vpc.name
}
data "google_compute_subnetwork" "subnetworks" {
for_each = toset(data.google_compute_network.vpc.subnetworks_self_links)
self_link = each.value
}
output "ip-cidr-ranges" {
value = [for s in data.google_compute_subnetwork.default-vpc-subnetworks : s.ip_cidr_range]
}
这似乎可行,但如果有人可以确认我没有做傻事,我将不胜感激。截至目前,我只有 一个 子网。还没有用多个测试过
https://www.terraform.io/docs/providers/aws/d/subnet_ids.html
AWS 提供商使这成为可能:
data "aws_subnet_ids" "example" {
vpc_id = var.vpc_id
}
data "aws_subnet" "example" {
for_each = data.aws_subnet_ids.example.ids
id = each.value
}
output "subnet_cidr_blocks" {
value = [for s in data.aws_subnet.example : s.cidr_block]
}
但是有没有办法用 google_compute_network 和 google_compute_subnetwork 做到这一点? google_compute_subnetwork 支持 self_link 并且 google_compute_network 具有属性 subnetworks_self_links- 我只是不确定如何将它们连接在一起。
好的,我想我明白了
data "google_compute_network" "vpc" {
name = google_compute_network.default-vpc.name
}
data "google_compute_subnetwork" "subnetworks" {
for_each = toset(data.google_compute_network.vpc.subnetworks_self_links)
self_link = each.value
}
output "ip-cidr-ranges" {
value = [for s in data.google_compute_subnetwork.default-vpc-subnetworks : s.ip_cidr_range]
}
这似乎可行,但如果有人可以确认我没有做傻事,我将不胜感激。截至目前,我只有 一个 子网。还没有用多个测试过