Bicep 中的属性迭代
本文介绍如何在 Bicep 文件中创建一个属性的多个实例。 可向资源的 properties
部分添加一个循环,并在部署期间动态设置属性的项数。 还可避免在 Bicep 文件中重复语法。
你只能对顶级资源使用循环,即使在将循环应用到属性时也是如此。 若要了解如何将子资源更改为顶级资源,请参阅子资源的迭代。
还可以将循环用于 modules、resources、variables 和 outputs。
语法
可通过以下方式使用循环声明多个属性:
使用循环索引。
<property-name>: [for <index> in range(<start>, <stop>): { <properties> }]
循环访问数组。
<property-name>: [for <item> in <collection>: { <properties> }]
有关详细信息,请参阅循环数组。
循环访问数组和索引。
<property-name>: [for (<item>, <index>) in <collection>: { <properties> }]
循环限制
Bicep 循环具有以下限制:
- 无法在多个属性级别上循环。
- 循环迭代不能为负数,也不能超过 800 次迭代。
循环数组
此示例将循环访问 subnets
的数组,以在一个虚拟网络中创建两个子网。
param rgLocation string = resourceGroup().location
var subnets = [
{
name: 'api'
subnetPrefix: '10.144.0.0/24'
}
{
name: 'worker'
subnetPrefix: '10.144.1.0/24'
}
]
resource vnet 'Microsoft.Network/virtualNetworks@2020-07-01' = {
name: 'vnet'
location: rgLocation
properties: {
addressSpace: {
addressPrefixes: [
'10.144.0.0/20'
]
}
subnets: [for subnet in subnets: {
name: subnet.name
properties: {
addressPrefix: subnet.subnetPrefix
}
}]
}
}
后续步骤
- 对于循环的其他使用,请参阅:
- 若要设置对循环中创建的资源的依赖关系,请参阅设置资源依赖关系。