我的情况是,我有一个公司列表,以及一个队列列表,我希望在bicep文件中将它们配对在一起,我希望使用结果将队列添加到服务总线名称空间中。
下面是队列数组的一个示例:
`var queues = [
'first-queue'
'second-queue'
'third-queue'
]``
这是company数组的一个例子:
`var companies = [
'apple'
'intel'
'blizzard'
]``
我想用bicep语法循环遍历company列表,并在每个队列前插入公司名称,在这种情况下,我想得到一个类似于bwlow的结果:
`var res = [
'apple-first-queue'
'apple-second-queue'
'apple-third-queue'
'intel-first-queue'
'intel-second-queue'
'intel-third-queue'
'blizzard-first-queue'
'blizzard-second-queue'
'blizzard-third-queue'
]`
我尝试了几种不同的方法,但都无法使其工作。这是我最近的一次尝试,我在下面收到了一条关于“queuesToCreate”语法的错误消息,格式为 “当前不支持直接引用资源或模块集合。将数组索引器应用于表达式”。
有没有人看到我做错了什么,能给我指出正确的方向?
`// ## Service bus multiple companies module ## //
module queuesToCreate 'service-bus-loop.bicep' = [for company in companies: {
name: 'multipleQueues-${company}'
params: {
company: company
}
}]
`
``// ## Service bus namespace ## //
resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2022-01-01-preview' = {
name: serviceBusNamespaceName
location: location
sku: {
name: skuName
}
}
// ## Queues ## //
resource queues 'Microsoft.ServiceBus/namespaces/queues@2022-01-01-preview' = [for queueName in queuesToCreate: {
parent: serviceBusNamespace
name: queueName
properties: {
maxDeliveryCount: 1
lockDuration: 'PT5M'
}
}]`
此service-bus-loop.bicep文件如下所示,并且只返回一个数组作为输出
param company string
`// Create an array with the names of the queues
var queues = [
'${company}-queue'
'${company}-queue'
'${company}-queue'
]
output res array = queues`
queuesToCreate变量在上述情况下存在语法错误,如“当前不支持直接引用资源或模块集合。请将数组索引器应用于表达式”。
1条答案
按热度按时间a64a0gku1#
正如评论部分所建议的,您可以始终使用模块为特定公司创建所有队列。
然后从你的主要,循环通过公司。