Tim*_*ock 3 for-loop terraform
我需要向 Google Cloud 虚拟机的资源添加多个scratch_disk子句。
我可以使用以下...
resource ... {
dynamic "scratch_disk" {
for_each = var.scratch_disk_count
content {
interface = "SCSI"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但随后var.scratch_disk_count需要这样做[ 1, 2, 3, 4 ],这看起来有点傻。
我尝试替换for_each为,count = 4但 terraform 说它没想到count那里。
是否有一个可以[ 1, 2, 3, 4 ]从生成的函数4,或者只是一些通常更好的方法?
这是问题的简单描述 - 我知道我可以将列表设置为 [“SCSI”、“SCSI”、“NVME”] 或类似的列表。
谢谢。
是的,您可以使用range该功能:
resource ... {
dynamic "scratch_disk" {
for_each = range(var.scratch_disk_count)
content {
interface = "SCSI"
}
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,如果 的值为var.scratch_disk_count,则函数4的返回值为,并将产生所需的行为。请注意,以这种方式在动态块中使用该函数也很常见。range[0, 1, 2, 3]range