azure - Azure 上的 Terraform - 部署多个子网
问题描述
我正在尝试实现一个 Terraform 脚本来创建多个子网。
resource "azurerm_subnet" "test_subnet" {
name = "testSUBNET"
resource_group_name = "${local.resource_group_name}"
virtual_network_name = "${azurerm_virtual_network.lab_vnet.name}"
address_prefix = "10.0.1.0/24"
}
有没有办法对变量执行 for-each 或循环以便同时创建它们?
此致!
解决方案
您可以使用变量和计数索引来实现此目的,如下所示:
variable "subnet_prefix" {
type = "list"
default = [
{
ip = "10.0.1.0/24"
name = "subnet-1"
},
{
ip = "10.0.2.0/24"
name = "subnet-2"
}
]
}
resource "azurerm_subnet" "test_subnet" {
name = "${lookup(element(var.subnet_prefix, count.index), "name")}"
count = "${length(var.subnet_prefix)}"
resource_group_name = "${local.resource_group_name}"
virtual_network_name = "${azurerm_virtual_network.lab_vnet.name}"
address_prefix = "${lookup(element(var.subnet_prefix, count.index), "ip")}"
}
新版本中还为每个人提供了预览功能
推荐阅读
- reactjs - 如何检查数组中的特定日期
- javascript - 无法在 Blazor 服务器端应用程序中使用来自 OnAfterRenderAsync 的 JsRuntime.InvokeAsync
- r - 如何使用 mutate 通过正则表达式创建多个变量
- javascript - 屏幕宽度更改时无法使 div 元素居中
- html - 如何向已经存在的对象添加按钮?
- javascript - 如何在 HTML 网页上同步多个动画 PNG 图像?
- vb.net - 如何在手动关闭一个面板时自动关闭另一个面板
- laravel - Laravel API 资源:基于用户角色的不同返回
- python - 如果我将 dropna 更改为 True/False 会发生什么
- java - 如何获取每两个字节交换的文件内容流?