我想生成一个带有二头肌和多个主题的 ESB。每个主题可以有一个或多个订阅。这些都在此列表中定义。
var topics = [{
name: 'topic.one'
subscriptions: [ 'esm', 'erp', 'pms' ]
}, {
name: 'topic.two'
subscriptions: [ 'esm' ]
}, {
name: 'topic.three'
subscriptions: [ 'erp', 'insights' ]
}, {
name: 'topic.four'
subscriptions: [ 'pms', 'cmdb']
}, {
name: 'topic.five'
subscriptions: [ 'billing', 'custom', 'erp', 'dax' ]
}]
当我创建资源时,最简单和最动态的解决方案将在循环内创建一个循环,如下所示。
resource sb_events 'Microsoft.ServiceBus/namespaces@2022-01-01-preview' = {
name: 'servicebus-events'
location: 'westeurope'
sku: {
capacity: 1
name: 'Standard'
tier: 'Standard'
}
resource topic_resources 'topics' = [for topic in topics: {
name: topic.name
resource subscription_resources 'subscriptions' = [for subscription in topic.subscriptions: {
name: subscription
properties: vSubscriptionProperties
}]
}]
}
但这给了我下一个错误:
嵌套资源不能出现在带有 for 表达式的资源内部。二头肌(BCP160)
当这段代码看起来符合逻辑时,bicep 编译器不接受它。我该如何解决这个问题?