Creare uno spazio dei nomi del bus di servizio con argomento, sottoscrizione e regola usando un modello di Azure Resource ManagerCreate a Service Bus namespace with topic, subscription, and rule using an Azure Resource Manager template

Questo articolo illustra come usare un modello di Azure Resource Manager per creare uno spazio dei nomi del bus di servizio con un argomento, una sottoscrizione e una regola (filtro).This article shows how to use an Azure Resource Manager template that creates a Service Bus namespace with a topic, subscription, and rule (filter). L'articolo spiega come specificare le risorse da distribuire e come definire i parametri che devono essere specificati quando viene eseguita la distribuzione.The article explains how to specify which resources are deployed and how to define parameters that are specified when the deployment is executed. È possibile usare questo modello per la distribuzione o personalizzarlo in base alle esigenze.You can use this template for your own deployments, or customize it to meet your requirements

Per altre informazioni sulla creazione dei modelli, vedere Creazione di modelli di Azure Resource Manager.For more information about creating templates, see Authoring Azure Resource Manager templates.

Per altre informazioni su procedure e modelli relativi alle convenzioni di denominazione delle risorse di Azure, vedere Recommended naming conventions for Azure resources (Convenzioni di denominazione consigliate per le risorse di Azure).For more information about practice and patterns on Azure resources naming conventions, see Recommended naming conventions for Azure resources.

Per il modello completo, vedere il modello dello spazio dei nomi del bus di servizio con argomento, sottoscrizione e regola su GitHub.For the complete template, see the Service Bus namespace with topic, subscription, and rule template.

Nota

Questi modelli di Azure Resource Manager sono disponibili per il download e la distribuzione.The following Azure Resource Manager templates are available for download and deployment.

Per verificare la disponibilità di nuovi modelli, visitare la raccolta Modelli di avvio rapido di Azure e cercare "service bus".To check for the latest templates, visit the Azure Quickstart Templates gallery and search for Service Bus.

DistribuzioneWhat will you deploy?

Questo modello consente di distribuire uno spazio dei nomi del bus di servizio con un argomento, una sottoscrizione e una regola (filtro).With this template, you deploy a Service Bus namespace with topic, subscription, and rule (filter).

Gli argomenti e le sottoscrizioni del bus di servizio offrono una forma di comunicazione uno-a-molti, in un schema di pubblicazione/sottoscrizione.Service Bus topics and subscriptions provide a one-to-many form of communication, in a publish/subscribe pattern. Quando si usano gli argomenti e le sottoscrizioni, i componenti di un'applicazione distribuita non comunicano direttamente tra loro, ma scambiano messaggi tramite un argomento, che agisce da intermediario. La sottoscrizione a un argomento è simile a una coda virtuale che riceve copie dei messaggi che sono stati inviati all'argomento.When using topics and subscriptions, components of a distributed application do not communicate directly with each other, instead they exchange messages via topic that acts as an intermediary.A subscription to a topic resembles a virtual queue that receives copies of messages that were sent to the topic. L'applicazione di un filtro a una sottoscrizione consente di specificare quali messaggi inviati a un argomento devono essere presenti in una specifica sottoscrizione dell'argomento.A filter on subscription enables you to specify which messages sent to a topic should appear within a specific topic subscription.

Che cosa sono le regole (filtri)?What are rules (filters)?

In molti scenari, i messaggi con caratteristiche specifiche devono essere elaborati in modi specifici.In many scenarios, messages that have specific characteristics must be processed in different ways. Per abilitare questa elaborazione personalizzata, è possibile configurare le sottoscrizioni in modo che trovino i messaggi che presentano le proprietà specifiche e apportare quindi modifiche a tali proprietà.To enable this custom processing, you can configure subscriptions to find messages that have specific properties and then perform modifications to those properties. Anche se nelle sottoscrizioni del bus di servizio tutti i messaggi vengono inviati all'argomento, l'utente può copiare solo un sottoinsieme di tali messaggi nella coda virtuale delle sottoscrizioni.Although Service Bus subscriptions see all messages sent to the topic, you can only copy a subset of those messages to the virtual subscription queue. Questa operazione viene eseguita usando i filtri della sottoscrizione.This is accomplished using subscription filters. Per altre informazioni sulle regole (filtri), vedere Regole e azioni.To learn more about rules (filters), see Rules and actions.

Per eseguire automaticamente la distribuzione, fare clic sul pulsante seguente:To run the deployment automatically, click the following button:

Distribuzione in AzureDeploy to Azure

ParametriParameters

Con Azure Resource Manager è necessario definire i parametri per i valori da specificare durante la distribuzione del modello.With Azure Resource Manager, you should define parameters for values you want to specify when the template is deployed. Il modello include una sezione denominata Parameters che contiene tutti i valori dei parametri.The template includes a section called Parameters that contains all the parameter values. È necessario definire un parametro per i valori che variano in base al progetto distribuito o all'ambiente in cui viene distribuito il progetto.You should define a parameter for those values that vary based on the project you are deploying or based on the environment you are deploying to. Non definire i parametri per i valori che rimangono invariati.Do not define parameters for values that always stay the same. Ogni valore di parametro nel modello viene usato per definire le risorse distribuite.Each parameter value is used in the template to define the resources that are deployed.

Il modello definisce i parametri seguenti:The template defines the following parameters:

serviceBusNamespaceNameserviceBusNamespaceName

Nome dello spazio dei nomi del bus di servizio da creare.The name of the Service Bus namespace to create.

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

serviceBusTopicNameserviceBusTopicName

Nome dell'argomento creato nello spazio dei nomi del bus di servizio.The name of the topic created in the Service Bus namespace.

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

serviceBusSubscriptionNameserviceBusSubscriptionName

Nome della sottoscrizione creata nello spazio dei nomi del bus di servizio.The name of the subscription created in the Service Bus namespace.

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

serviceBusRuleNameserviceBusRuleName

Nome della regola (filtro) creata nello spazio dei nomi del bus di servizio.The name of the rule(filter) created in the Service Bus namespace.

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

serviceBusApiVersionserviceBusApiVersion

Versione API del bus di servizio del modello.The Service Bus API version of the template.

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

Risorse da distribuireResources to deploy

Crea uno spazio dei nomi del bus di servizio standard di tipo Messaggistica con argomento, sottoscrizione e regole.Creates a standard Service Bus namespace of type Messaging, with topic and subscription and rules.

 "resources": [{
        "apiVersion": "[variables('sbVersion')]",
        "name": "[parameters('serviceBusNamespaceName')]",
        "type": "Microsoft.ServiceBus/Namespaces",
        "location": "[variables('location')]",
        "sku": {
            "name": "Standard",
            "tier": "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": {
                        "filter": {
                            "sqlExpression": "StoreName = 'Store1'"
                        },
                        "action": {
                            "sqlExpression": "set FilterTag = 'true'"
                        }
                    }
                }]
            }]
        }]
    }]

Comandi per eseguire la distribuzioneCommands to run deployment

Per distribuire le risorse in Azure, è necessario aver eseguito l'accesso all'account Azure e usare il modulo Gestione risorse di Azure.To deploy the resources to Azure, you must be logged in to your Azure account and you must use the Azure Resource Manager module. Per altre informazioni su come usare Gestione risorse di Azure con Azure PowerShell o l'interfaccia della riga di comando di Azure, vedere:To learn about using Azure Resource Manager with either Azure PowerShell or Azure CLI, see:

Gli esempi seguenti presuppongono che nell'account sia già stato creato un gruppo di risorse con il nome specificato.The following examples assume you already have a resource group in your account with the specified name.

PowerShellPowerShell

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

Interfaccia della riga di comando di AzureAzure CLI

azure config mode arm

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

Passaggi successiviNext steps

Dopo aver creato e distribuito le risorse con Azure Resource Manager, è possibile imparare a gestire queste risorse. Leggere gli articoli seguenti:Now that you've created and deployed resources using Azure Resource Manager, learn how to manage these resources by viewing these articles: