Tworzenie przestrzeni nazw usługi Service Bus z tematem, subskrypcją i regułą przy użyciu szablonu usługi Azure Resource Manager

W tym artykule pokazano, jak używać szablonu usługi Azure Resource Manager, który tworzy przestrzeń nazw usługi Service Bus z tematem, subskrypcją i regułą (filtr). W artykule wyjaśniono, jak określić, które zasoby są wdrażane, oraz jak zdefiniować parametry określone podczas wdrażania. Można użyć tego szablonu na potrzeby własnych wdrożeń lub dostosować go do konkretnych potrzeb.

Aby uzyskać więcej informacji na temat tworzenia szablonów, zobacz Tworzenie szablonów usługi Azure Resource Manager.

Aby uzyskać więcej informacji na temat praktyk i wzorców konwencji nazewnictwa zasobów platformy Azure, zobacz Zalecane konwencje nazewnictwa zasobów platformy Azure.

Aby zapoznać się z kompletnym szablonem, zobacz przestrzeń nazw usługi Service Bus z tematem, subskrypcją i szablonem reguły.

Co wdrażasz?

Za pomocą tego szablonu wdrożysz przestrzeń nazw usługi Service Bus z tematem, subskrypcją i regułą (filtr).

Tematy i subskrypcje usługi Service Bus zapewniają jedną do wielu formę komunikacji w wzorcu publikowania/subskrybowania . W przypadku korzystania z tematów i subskrypcji składniki aplikacji rozproszonej nie komunikują się bezpośrednio ze sobą, zamiast tego wymieniają komunikaty za pośrednictwem tematu, który działa jako pośrednik. Subskrypcja tematu przypomina kolejkę wirtualną, która odbiera kopie komunikatów wysłanych do tematu. Filtr subskrypcji umożliwia określenie komunikatów wysyłanych do tematu w ramach określonej subskrypcji tematu.

Co to są reguły (filtry)?

W wielu scenariuszach komunikaty o określonych cechach muszą być przetwarzane na różne sposoby. Aby włączyć to przetwarzanie niestandardowe, można skonfigurować subskrypcje w celu znajdowania komunikatów, które mają określone właściwości, a następnie wykonywać modyfikacje tych właściwości. Mimo że subskrypcje usługi Service Bus widzą wszystkie komunikaty wysyłane do tematu, można skopiować tylko podzbiór tych komunikatów do kolejki subskrypcji wirtualnej. Odbywa się to przy użyciu filtrów subskrypcji. Aby dowiedzieć się więcej na temat reguł (filtrów), zobacz Reguły i akcje.

Aby automatycznie uruchomić wdrożenie, kliknij poniższy przycisk:

Wdróż na platformie Azure

Parametry

W przypadku usługi Azure Resource Manager zdefiniuj parametry dla wartości, które chcesz określić podczas wdrażania szablonu. Szablon zawiera sekcję o nazwie Parameters obejmującą wszystkie wartości parametrów. Zdefiniuj parametr dla tych wartości, które różnią się w zależności od wdrażanego projektu lub na podstawie wdrażanego środowiska. Nie należy definiować parametrów dla wartości, które pozostają niezmienione. Każda wartość parametru używana w szablonie definiuje wdrażane zasoby.

Szablon definiuje następujące parametry:

serviceBusNamespaceName

Nazwa przestrzeni nazw usługi Service Bus do utworzenia.

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

serviceBusTopicName

Nazwa tematu utworzonego w przestrzeni nazw usługi Service Bus.

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

serviceBusSubscriptionName

Nazwa subskrypcji utworzonej w przestrzeni nazw usługi Service Bus.

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

serviceBusRuleName

Nazwa reguły(filtru) utworzonej w przestrzeni nazw usługi Service Bus.

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

serviceBusApiVersion

Wersja interfejsu API usługi Service Bus szablonu.

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

Zasoby wymagające wdrożenia

Tworzy standardową przestrzeń nazw usługi Service Bus typu Messaging z tematem i regułami.

 "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'"
                        }
                    }
                }]
            }]
        }]
    }]

Aby uzyskać informacje o składni i właściwościach JSON, zobacz przestrzenie nazw, tematy, subskrypcje i reguły.

Polecenia umożliwiające uruchomienie wdrożenia

Aby wdrożyć zasoby na platformie Azure, musisz wcześniej zalogować się na swoje konto Azure i korzystać z modułu Azure Resource Manager. Aby dowiedzieć się, jak używać usługi Azure Resource Manager z programem Azure PowerShell lub interfejsem wiersza polecenia platformy Azure, zobacz:

W następujących przykładach założono, że na swoim koncie masz już grupę zasobów o określonej nazwie.

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>

Interfejs wiersza polecenia platformy Azure

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>

Następne kroki

Dowiedz się, jak zarządzać tymi zasobami, wyświetlając następujące artykuły: