Delen via


Een Service Bus-naamruimte maken met onderwerp, abonnement en regel met behulp van een Azure Resource Manager-sjabloon

In dit artikel wordt beschreven hoe u een Azure Resource Manager-sjabloon gebruikt waarmee een Service Bus-naamruimte wordt gemaakt met een onderwerp, abonnement en regel (filter). In het artikel wordt uitgelegd hoe u kunt opgeven welke resources worden geïmplementeerd en hoe u de parameters definieert die bij de uitvoering van de implementatie zijn opgegeven. U kunt deze sjabloon gebruiken voor uw eigen implementaties of de sjabloon aanpassen aan uw eisen

Zie Azure Resource Manager-sjablonen samenstellen voor meer informatie over het maken van sjablonen.

Zie Aanbevolen naamconventies voor Azure-resources voor meer informatie over oefenen en patronen in naamconventies voor Azure-resources.

Zie de Service Bus-naamruimte met onderwerp, abonnement en regelsjabloon voor de volledige sjabloon.

Notitie

De volgende Azure Resource Manager-sjablonen zijn beschikbaar om te downloaden en te implementeren.

Als u wilt controleren op de nieuwste sjablonen, gaat u naar de galerie met Azure-quickstartsjablonen en zoekt u naar Service Bus.

Wat gaat u implementeren?

Met deze sjabloon implementeert u een Service Bus-naamruimte met onderwerp, abonnement en regel (filter).

Service Bus-onderwerpen en -abonnementen biedt een een-op-veel-communicatievorm in een publiceren/abonneren-patroon. Wanneer u onderwerpen en abonnementen gebruikt, communiceren onderdelen van een gedistribueerde toepassing niet rechtstreeks met elkaar, in plaats daarvan wisselen ze berichten uit via onderwerp dat als intermediair fungeert. Een abonnement op een onderwerp lijkt op een virtuele wachtrij die kopieën ontvangt van berichten die naar het onderwerp zijn verzonden. Met een filter voor abonnementen kunt u opgeven welke berichten die naar een onderwerp worden verzonden, moeten worden weergegeven binnen een specifiek onderwerpabonnement.

Wat zijn regels (filters)?

In veel scenario's moeten berichten met specifieke kenmerken op verschillende manieren worden verwerkt. Als u deze aangepaste verwerking wilt inschakelen, kunt u abonnementen configureren om berichten met specifieke eigenschappen te vinden en vervolgens wijzigingen in deze eigenschappen uit te voeren. Hoewel Service Bus-abonnementen alle berichten zien die naar het onderwerp worden verzonden, kunt u alleen een subset van deze berichten kopiëren naar de wachtrij voor virtuele abonnementen. Dit wordt bereikt met behulp van abonnementsfilters. Zie Regels en acties voor meer informatie over regels (filters).

Klik op de volgende knop om de implementatie automatisch uit te voeren:

Implementeren op Azure

Parameters

Met Azure Resource Manager definieert u parameters voor waarden die u wilt opgeven wanneer de sjabloon wordt geïmplementeerd. De sjabloon bevat een sectie met de naam Parameters die alle parameterwaarden bevat. Definieer een parameter voor die waarden die variëren op basis van het project dat u implementeert of op basis van de omgeving waarnaar u implementeert. Definieer geen parameters voor waarden die altijd hetzelfde blijven. De waarde van elke parameter wordt gebruikt in de sjabloon voor het definiëren van de resources die worden geïmplementeerd.

Met de sjabloon worden de volgende parameters gedefinieerd:

serviceBusNamespaceName

De naam van de Service Bus-naamruimte die moet worden gemaakt.

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

serviceBusTopicName

De naam van het onderwerp dat in de Service Bus-naamruimte wordt gemaakt.

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

serviceBusSubscriptionName

De naam van het abonnement dat in de Service Bus-naamruimte wordt gemaakt.

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

serviceBusRuleName

De naam van de regel (filter) die is gemaakt in de Service Bus-naamruimte.

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

serviceBusApiVersion

De Service Bus-API-versie van de sjabloon.

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

Resources om te implementeren

Hiermee maakt u een standaard Service Bus-naamruimte van het type Messaging, met onderwerp en abonnement en regels.

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

Zie naamruimten, onderwerpen, abonnementen en regels voor JSON-syntaxis en -eigenschappen.

Opdrachten om implementatie uit te voeren

Als u resources in Azure wilt implementeren, moet u zijn aangemeld bij uw Azure-account en moet u de Azure Resource Manager-module gebruiken. Voor meer informatie over het gebruik van Azure Resource Manager in combinatie met Azure PowerShell of de Azure CLI raadpleegt u:

In de volgende voorbeelden wordt ervan uitgegaan dat u in uw account al een resourcegroep hebt met de opgegeven naam.

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>

Volgende stappen

Meer informatie over het beheren van deze resources vindt u in de volgende artikelen: