ARM部署错误:无法在创建配对之前冻结辅助名称空间,这可能是因为辅助名称空间不为空

时间:2020-07-30 18:52:07

标签: azure azureservicebus azure-resource-manager arm-template azure-resource-group

我有两个通过天蓝色门户手动部署的高级Service总线实例。他们没有配置地理恢复别名,并且服务总线实例已经运行了大约一年。

现在,我正在尝试自动化这些服务总线实例的部署过程,并向其添加一个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资源仅在为主实例时才部署。

此模板成功部署了辅助名称空间,但是主要名称空间部署失败,出现以下错误:

在创建配对之前无法冻结辅助名称空间,这是 可能是因为辅助名称空间不为空。

哪个是正确的,即辅助名称空间有几个已经创建的主题/订阅和队列。我不想删除它们,只想将主要和次要名称空间配对。

这怎么办?

1 个答案:

答案 0 :(得分:0)

如果您尝试在具有私有终结点的主命名空间与没有私有终结点的辅助命名空间之间create a pairing,则配对将失败。

您可以参考此template来配置服务总线地理灾难恢复别名。

ndays = df.groupby(['cycle', 'Fault_Count']).Date.size()