Поделиться через


Создание пространства имен служебной шины с разделом, подпиской и правилом с помощью шаблона Azure Resource Manager

В этой статье показывается, как использовать шаблон Azure Resource Manager, создающий пространство имен служебной шины с разделом, подпиской и правилом (фильтром). Здесь объясняется, как указать развертываемые ресурсы и определить параметры, указываемые при развертывании. Этот шаблон можно использовать для собственных развертываний или изменить его в соответствии с вашими требованиями.

Дополнительные сведения о создании шаблонов см. в статье Создание шаблонов Azure Resource Manager.

Дополнительные сведения о практиках и шаблонах соглашений об именовании ресурсов Azure см. в разделе Recommended naming conventions for Azure resources (Рекомендуемые соглашения об именовании ресурсов Azure).

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

Примечание.

Для скачивания и развертывания можно использовать указанные ниже шаблоны диспетчера ресурсов Azure.

Чтобы узнать о новых шаблонах, в коллекции шаблонов быстрого запуска Azure выполните поиск "Service Bus".

Какой объект развертывается?

С помощью этого шаблона вы развернете пространство имен служебной шины с разделом, подпиской и правилом (фильтром).

Разделы и подписки служебной шины предоставляют разновидность взаимодействия "один ко многим" в рамках схемы публикации или подписки. При использовании разделов и подписок компоненты распределенного приложения не взаимодействуют напрямую друг с другом, а обмениваются сообщениями через раздел, который выступает в качестве посредника. Подписка на раздел напоминает виртуальную очередь, которая получает копии сообщений, отправленных в раздел. Фильтр позволяет определить, какие посылаемые в раздел сообщения должны появляться в определенной подписке на этот раздел.

Что такое правила (фильтры)?

Во многих ситуациях сообщения с определенными характеристиками должны обрабатываться разными способами. Чтобы включить пользовательскую обработку, можно настроить подписки, обеспечивающие поиск сообщений с нужными свойствами, после чего можно изменить эти свойства. Подписки служебной шины регистрируют все сообщения, отправленные в раздел, однако в виртуальную очередь подписки можно скопировать только подмножество этих сообщений. Это возможно благодаря использованию фильтров подписок. Чтобы узнать больше о правилах (фильтрах), изучите раздел Правила и действия.

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

Развернуть в Azure

Параметры

С помощью Azure Resource Manager определите параметры для значений, которые должны указываться на этапе развертывания шаблона. В шаблоне есть раздел Parameters , содержащий все значения параметров. Определите параметры для тех значений, которые зависят от развертываемого проекта либо от среды, в которую выполняется развертывание. Не определяйте параметры для значений, которые не меняются. Значение каждого параметра в шаблоне определяет развертываемые ресурсы.

Ниже описаны параметры, которые определяет шаблон.

serviceBusNamespaceName

Имя создаваемого пространства имен служебной шины.

"serviceBusNamespaceName": {
"type": "string"
}

serviceBusTopicName

Имя раздела, создаваемого в пространстве имен служебной шины.

"serviceBusTopicName": {
"type": "string"
}

serviceBusSubscriptionName

Имя подписки, создаваемой в пространстве имен служебной шины.

"serviceBusSubscriptionName": {
"type": "string"
}

serviceBusRuleName

Имя правила (фильтра), создаваемого в пространстве имен служебной шины.

   "serviceBusRuleName": {
   "type": "string",
  }

serviceBusApiVersion

Версия API служебной шины для шаблона.

"serviceBusApiVersion": {
       "type": "string",
       "defaultValue": "2017-04-01",
       "metadata": {
           "description": "Service Bus ApiVersion used by the template"
       }

Развертываемые ресурсы

Создает стандартное пространство имен служебной шины типа Messaging с разделом, подпиской и правилами.

 "resources": [{
        "apiVersion": "[variables('sbVersion')]",
        "name": "[parameters('serviceBusNamespaceName')]",
        "type": "Microsoft.ServiceBus/Namespaces",
        "location": "[variables('location')]",
        "sku": {
            "name": "Standard",
        },
        "resources": [{
            "apiVersion": "[variables('sbVersion')]",
            "name": "[parameters('serviceBusTopicName')]",
            "type": "Topics",
            "dependsOn": [
                "[concat('Microsoft.ServiceBus/namespaces/', parameters('serviceBusNamespaceName'))]"
            ],
            "properties": {
                "path": "[parameters('serviceBusTopicName')]"
            },
            "resources": [{
                "apiVersion": "[variables('sbVersion')]",
                "name": "[parameters('serviceBusSubscriptionName')]",
                "type": "Subscriptions",
                "dependsOn": [
                    "[parameters('serviceBusTopicName')]"
                ],
                "properties": {},
                "resources": [{
                    "apiVersion": "[variables('sbVersion')]",
                    "name": "[parameters('serviceBusRuleName')]",
                    "type": "Rules",
                    "dependsOn": [
                        "[parameters('serviceBusSubscriptionName')]"
                    ],
                    "properties": {
                        "filterType": "SqlFilter",
                        "sqlFilter": {
                            "sqlExpression": "StoreName = 'Store1'",
                            "requiresPreprocessing": "false"
                        },
                        "action": {
                            "sqlExpression": "set FilterTag = 'true'"
                        }
                    }
                }]
            }]
        }]
    }]

Сведения о синтаксисе и свойствах JSON см. в статьях о пространствах имен, разделах, подписках и правилах.

Команды для выполнения развертывания

Чтобы развернуть ресурсы в Azure, необходимо войти в учетную запись Azure и воспользоваться модулем Azure Resource Manager. Информацию об использовании диспетчера ресурсов Azure с помощью Azure PowerShell или интерфейса командной строки Azure см. в следующих статьях:

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

PowerShell

New-AzureResourceGroupDeployment -Name \<deployment-name\> -ResourceGroupName \<resource-group-name\> -TemplateUri <https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/quickstarts/microsoft.servicebus/servicebus-create-topic-subscription-rule/azuredeploy.json>

Azure CLI

az deployment group create -g \<my-resource-group\> --template-uri <https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/quickstarts/microsoft.servicebus/servicebus-create-topic-subscription-rule/azuredeploy.json>

Следующие шаги

Узнайте, как управлять этими ресурсами, просмотрев следующие статьи: