terraform - Terraform .11 到 .12 深度嵌套数据的转换
问题描述
所以,在我的旧 .11 代码中,我有一个文件,其中我的输出模块 locals 部分,我正在构建:
this_assigned_nat_ip = google_compute_instance.this_public.*.network_interface.0.access_config.0.assigned_nat_ip--
稍后将其馈送到输出语句。这个模块可以创建 N 个实例。所以它过去所做的就是在我们创建的所有实例的第一个网络接口上的第一个 access_config 块上给我第一个 nat ip。(有人在本地编写了代码,所以我们知道只有一个网络接口和一个访问配置块)。我如何将其翻译为 t12?我不确定保持嵌套的语法。
更新:这是来自 tf11 的 terraform show 的一部分原始数据(经过轻微处理)
module.gcp_bob_servers_ams.google_compute_instance.this_public.0:
machine_type = n1-standard-2
min_cpu_platform =
network_interface.# = 1
network_interface.0.access_config.# = 1
network_interface.0.access_config.0.assigned_nat_ip =
network_interface.0.access_config.0.nat_ip = 1.2.3.4
network_interface.0.access_config.0.network_tier = PREMIUM
tf12 中等效主机的 Terraform 显示:
# module.bob.module.bob_gcp_ams.module.atom_d.google_compute_instance.this[1]:
resource "google_compute_instance" "this" {
allow_stopping_for_update = true
network_interface {
name = "nic0"
network = "https://www.googleapis.com/compute/v1/projects/stuff-scratch/global/networks/scratch-public"
network_ip = "10.112.112.6"
subnetwork = "https://www.googleapis.com/compute/v1/projects/stuff-scratch/regions/europe-west4/subnetworks/scratch-europe-west4-x-public-subnet"
subnetwork_project = "stuff-scratch"
access_config {
nat_ip = "35.204.132.177"
network_tier = "PREMIUM"
}
}
scheduling {
automatic_restart = true
on_host_maintenance = "MIGRATE"
preemptible = false
}
}
解决方案
如果我理解正确this_assigned_nat_ip
是IP列表。通过执行以下操作,您应该能够在 Terraform 0.12 中获得相同的功能:
this_assigned_nat_ip = [for i in google_compute_instance.this_public : i.network_interface.0.access_config.0.assigned_nat_ip]
我没有测试是,所以我可能有一些小的语法错误,但这for
是完成它的关键。
推荐阅读
- python - 无法在 python 中使用 Google Calendar API 找到 client_secret.json
- python - 嵌套列表项未从 Flask 会话中删除
- cisco - OPEN VPN 与 CISCO ASA 5580 的兼容性
- javascript - 客户端脚本 javascript -language 或多种语言
- python - 使用 Python 2 的全屏幻灯片
- jasmine - protractor getCssValue('background') 返回几个信息
- r - 如何将公共行添加在一起?
- unix - 对 autosys 的时间依赖性
- selenium - 如何跨黄瓜步骤传递数据(测试自动化放心API测试)?
- java - 休眠 ManyToOne 不同的行为