如何使用Azure二头肌设置EventHub灾难恢复配置



我创建了一个模块"resources.bicep",用于在两个区域中创建事件中心命名空间。

resource eventHubNamespace 'Microsoft.EventHub/namespaces@2021-11-01' = {
name: resourceName
location: location
sku: {
name:'Standard'
tier:'Standard'
capacity:1
}
}
resource eventHub 'Microsoft.EventHub/namespaces/eventhubs@2021-11-01' = if (shortRegion == 'wus2') {
name: 'city-temprature'
parent: eventHubNamespace
properties: {
messageRetentionInDays: 1
partitionCount: 2
}
}

从父二头肌文件中,我将模块作为运行

module weatherWest 'resources.bicep' = {
name:'westResources'
scope:resourceGroup('${name}-wus2')
params: {
name: name
shortRegion: 'wus2'
location: 'westus2'
}
}
module weatherEast 'resources.bicep' = {
name:'eastResources'
scope:resourceGroup('${name}-eus2')
params: {
name: name
shortRegion: 'eus2'
location: 'eastus2'
}
} 

如何设置GeoPairing?我还没有找到从父二头肌文件调用Microsoft.EventHub/namespaces/disasterRecoveryConfigs@2021-11-01的方法。

代码位于此分支中https://github.com/xavierjohn/SearchIndexDisasterRecoverNearRealTime/blob/bicep/bicep/weatherResources.bicep

根据文档,

您需要指定一个parent资源。您可以使用existing关键字查找现有资源。

沿着这些思路应该会奏效。

resource primary 'Microsoft.EventHub/namespaces@2021-11-01' existing = {
name: 'primaryEventHubName'
resource secondary 'Microsoft.EventHub/namespaces@2021-11-01' existing = {
name: 'secondaryEventHubName'
resource symbolicname 'Microsoft.EventHub/namespaces/disasterRecoveryConfigs@2021-11-01' = {
name: 'foo'
parent: primary
properties: {
alternateName: 'string'
partnerNamespace: secondary.id
}
}

我得到了Azure Bicep团队的帮助,目前没有办法将资源作为输出传递,但他们正在制定一项提案。现在有一个技巧会奏效,直到优雅的解决方案出来,使用CCD_ 4并在地理配对片段上设置CCD_。结束代码如下所示。

module allResources 'resources.bicep' = [for location in locations : {
name:'allResources'
scope:resourceGroup('${name}-${location.shortRegion}')
params: {
name: name
shortRegion: location.shortRegion
location: location.region
}
}]
resource primaryEventHubNamespace 'Microsoft.EventHub/namespaces@2021-11-01' existing = {
name: '${name}wus2'
}
resource disasterRecoveryConfigs 'Microsoft.EventHub/namespaces/disasterRecoveryConfigs@2021-11-01' = {
name: name
parent: primaryEventHubNamespace
properties: {
partnerNamespace: resourceId('${name}-eus2', 'Microsoft.EventHub/namespaces', '${name}eus2')
}
dependsOn: [
allResources
]
}

最新更新