我在资源组 A 中有一个现有的 ServiceBus 命名空间和主题,并且我正在开发一个新的二头肌模板,该模板将把资源部署到资源组 B,在此模板中,我必须为资源组中的主题创建一个新的订阅A.
到目前为止我已经尝试过以下操作,但没有成功:
param EngineServiceBus string
param EngineTopicName string
param EngineMatasPlusSubscriber string
resource EngineServicebus 'Microsoft.ServiceBus/namespaces@2022-10-01-preview' existing = {
name: EngineServiceBus
scope: resourceGroup(offerEngineRG)
}
resource EngineTopic 'Microsoft.ServiceBus/namespaces/topics@2022-10-01-preview' existing = {
name: EngineTopicName
parent: EngineServicebus
}
resource EngineSubscriber 'Microsoft.ServiceBus/namespaces/topics/subscriptions@2022-10-01-preview' = {
name: '${EngineServicebus.name}/${EngineTopic.name}/${EngineMatasPlusSubscriber}'
}
从父二头肌文件调用此模块时,您需要将该模块scopes到资源组。
在您的订阅模块中,删除范围:
// subscription.bicep
param EngineServiceBus string
param EngineTopicName string
param EngineMatasPlusSubscriber string
resource EngineServicebus 'Microsoft.ServiceBus/namespaces@2022-10-01-preview' existing = {
name: EngineServiceBus
}
resource EngineTopic 'Microsoft.ServiceBus/namespaces/topics@2022-10-01-preview' existing = {
name: EngineTopicName
parent: EngineServicebus
}
resource EngineSubscriber 'Microsoft.ServiceBus/namespaces/topics/subscriptions@2022-10-01-preview' = {
name: EngineMatasPlusSubscriber
parent: EngineTopic
}
然后从父级,在模块上添加范围
param offerEngineRG string
param EngineServiceBus string
param EngineTopicName string
param EngineMatasPlusSubscriber string
module createSubscription 'subscription.bicep' = {
name: '...'
scope: resourceGroup(offerEngineRG) // scope of the deployment
params: {
EngineServiceBus: EngineServiceBus
EngineTopicName: EngineTopicName
EngineMatasPlusSubscriber: EngineMatasPlusSubscriber
}
}