Ошибка развертывания ARM: невозможно заморозить вторичное пространство имен перед созданием пары, вероятно, это связано с тем, что вторичное пространство имен не пусто

У меня есть два экземпляра служебной шины премиум-класса, развернутые вручную через лазурный портал. У них не настроен псевдоним геовосстановления, и экземпляры служебной шины работают около года.

Теперь я пытаюсь автоматизировать процесс развертывания этих экземпляров служебной шины, а также добавить к нему ресурс псевдонима геореактивации следующим образом:

{
  "$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)


Если вы попытаетесь создать пару между первичным пространством имен с частной конечной точкой и вторичным пространством имен без частной конечной точки, соединение не будет выполнено.

Вы можете обратиться к этому шаблону < / a> позволяет настроить псевдоним для гео-аварийного восстановления служебной шины.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serviceBusNamespaceNamePrimary": {
      "type": "string",
      "metadata": {
        "description": "Name of Service Bus namespace"
      }
    },
    "serviceBusNamespaceNameSecondary": {
      "type": "string",
      "metadata": {
        "description": "Name of Service Bus namespace"
      }
    },
    "aliasName": {
      "type": "string",
      "metadata": {
        "description": "Name of Geo-Recovery Configuration Alias "
      }
    },
    "locationSecondaryNamepsace": {
      "type": "string",
      "defaultValue": "South Central US",
      "metadata": {
        "description": "Location of Secondary namespace"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location of Primary namespace"
      }
    }
  },
  "variables": {
    "defaultSASKeyName": "RootManageSharedAccessKey",
    "defaultAuthRuleResourceId": "[resourceId('Microsoft.ServiceBus/namespaces/authorizationRules', parameters('serviceBusNamespaceNamePrimary'), variables('defaultSASKeyName'))]"
  },
  "resources": [
    {
      "apiVersion": "2017-04-01",
      "name": "[parameters('serviceBusNamespaceNameSecondary')]",
      "type": "Microsoft.ServiceBus/Namespaces",
      "location": "[parameters('locationSecondaryNamepsace')]",
      "sku": {
        "name": "Premium",
        "tier": "Premium",
        "capacity": 4
      },
      "tags": {
        "tag1": "value1",
        "tag2": "value2"
      }
    },
    {
      "apiVersion": "2017-04-01",
      "type": "Microsoft.ServiceBus/Namespaces",
      "dependsOn": [ "[concat('Microsoft.ServiceBus/namespaces/', parameters('serviceBusNamespaceNameSecondary'))]" ],
      "name": "[parameters('serviceBusNamespaceNamePrimary')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Premium",
        "tier": "Premium",
        "capacity": 4
      },
      "tags": {
        "tag1": "value1",
        "tag2": "value2"
      },
      "resources": [
        {
          "apiVersion": "2017-04-01",
          "name": "[parameters('aliasName')]",
          "type": "disasterRecoveryConfigs",
          "dependsOn": [ "[concat('Microsoft.ServiceBus/namespaces/', parameters('serviceBusNamespaceNamePrimary'))]" ],
          "properties": {
            "partnerNamespace": "[resourceId('Microsoft.ServiceBus/Namespaces', parameters('serviceBusNamespaceNameSecondary'))]"
          }
        }
      ]
    }
  ],
  "outputs": {
    "NamespaceDefaultConnectionString": {
      "type": "string",
      "value": "[listkeys(variables('defaultAuthRuleResourceId'), '2017-04-01').primaryConnectionString]"
    },
    "DefaultSharedAccessPolicyPrimaryKey": {
      "type": "string",
      "value": "[listkeys(variables('defaultAuthRuleResourceId'), '2017-04-01').primaryKey]"
    }
  }
}
person Joey Cai    schedule 31.07.2020