我想一次为多个地区、环境、应用程序等创建一个资源。我想做这样的事情:
param apps array = [
'app1'
'app2'
'app3'
]
param environments array = [
'alpha'
'beta'
]
param regions array = [
'ne'
'we'
'uks'
]
resource origin_group 'Microsoft.Cdn/profiles/origingroups@2021-06-01' = [ for region in regions: {
[ for env in environments: {
[ for app in apps: {
parent: profiles_global_fd_name_resource
name: '${env}-${region}-${app}-origin-group'
properties: {
loadBalancingSettings: {
sampleSize: 4
successfulSamplesRequired: 3
additionalLatencyInMilliseconds: 50
}
healthProbeSettings: {
probePath: '/'
probeRequestType: 'HEAD'
probeProtocol: 'Http'
probeIntervalInSeconds: 100
}
sessionAffinityState: 'Disabled'
}
}]
}]
}]
所有提到嵌套循环的文档都在谈论在资源内部循环以创建许多子资源。不是我想要的。也许另一种方法是以某种方式将所有这些数组合并到每个可能迭代的单个对象数组中。也不知道从哪里开始。
任何帮助非常感谢。
1条答案
按热度按时间axr492tv1#
目前还不支持,但将来会支持(请参阅Is there plans to support nested loop on resources?)。
编辑2023年4月
Bicep现在支持lambda functions。
reduce
和map
函数可以用来生成所有可能的组合:原始答案
使用一点数学,你可以实现你想要的(不确定你是否应该):
这将输出所有可能的组合(我认为)的起源组名称.