【发布时间】:2020-07-30 18:52:07
【问题描述】:
我通过 Azure 门户手动部署了两个高级服务总线实例。他们没有配置地理恢复别名,服务总线实例已经运行了大约一年。
现在,我正在尝试自动化这些服务总线实例的部署过程,并向其中添加一个 georecovery 别名资源,如下所示:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"serviceBusNamespaceName": {
"type": "string",
"metadata": {
"description": "Name of the Service Bus namespace"
}
},
"serviceBusQueueName": {
"type": "string",
"metadata": {
"description": "Name of the Queue"
}
},
"serviceBusLocation": {
"type": "string"
},
"sku": {
"type": "object",
"defaultValue": "Standard"
},
"serviceBusTopicName": {
"type": "string"
},
"serviceBusSubscriptionName": {
"type": "string"
},
"isAliasEnabled": {
"type": "bool"
},
"isQueueCreationEnabled": {
"type": "bool"
},
"aliasName": {
"type": "string"
},
"partnerNamespace": {
"type": "string"
}
},
"variables": {
"defaultSASKeyName": "RootManageSharedAccessKey",
"authRuleResourceId": "[resourceId('Microsoft.ServiceBus/namespaces/authorizationRules', parameters('serviceBusNamespaceName'), variables('defaultSASKeyName'))]",
"sbVersion": "2017-04-01"
},
"resources": [
{
"apiVersion": "2018-01-01-preview",
"name": "[parameters('serviceBusNamespaceName')]",
"type": "Microsoft.ServiceBus/Namespaces",
"location": "[parameters('serviceBusLocation')]",
"sku": {
"name": "[parameters('sku').name]",
"tier": "[parameters('sku').tier]",
"capacity": "[parameters('sku').capacity]"
},
"properties": {
"zoneRedundant": false
},
"resources": [
{
"apiVersion": "2017-04-01",
"name": "[parameters('aliasName')]",
"type": "disasterRecoveryConfigs",
"condition": "[parameters('isAliasEnabled')]",
"dependsOn": [
"[concat('Microsoft.ServiceBus/namespaces/', parameters('serviceBusNamespaceName'))]"
],
"properties": {
"partnerNamespace": "[parameters('partnerNamespace')]"
}
}
]
}
]
}
我使用相同的模板分别部署主实例和辅助实例。请注意,disasterRecoveryConfigs 资源仅在它是主实例时才会被部署。
此模板成功部署了辅助命名空间,但主命名空间部署失败并出现以下错误:
在创建配对之前无法冻结辅助命名空间,这是 可能是因为辅助命名空间不为空。
这是正确的,即辅助命名空间已经创建了几个主题/订阅和队列。我不想删除它们,只想将主命名空间和辅助命名空间配对。
如何做到这一点?
【问题讨论】:
标签: azure azureservicebus azure-resource-manager arm-template azure-resource-group