Share via


De Azure CLI gebruiken om een Service Bus-onderwerp en abonnementen te maken voor het onderwerp

In deze quickstart gebruikt u de Azure CLI om een Service Bus-onderwerp te maken en vervolgens abonnementen op dat onderwerp te maken.

Wat zijn Service Bus-onderwerpen en -abonnementen?

Service Bus-onderwerpen en -abonnementen bieden ondersteuning voor een berichtencommunicatiemodel op basis van publiceren/abonneren. Wanneer u gebruikmaakt van onderwerpen en abonnementen, communiceren onderdelen van een gedistribueerde toepassing niet direct met elkaar. In plaats daarvan wisselen ze berichten uit via een onderwerp dat als intermediair fungeert.

TopicConcepts

Anders dan bij Service Bus-wachtrijen, waarin elk bericht door een enkele gebruiker wordt verwerkt, bieden onderwerpen en abonnementen een één-naar-veel-communicatiewijze, waarbij een patroon voor publiceren/abonneren wordt gebruikt. Het is mogelijk meerdere abonnementen voor een onderwerp te registreren. Wanneer een bericht naar een onderwerp wordt verzonden, wordt dit vervolgens beschikbaar gemaakt voor elk abonnement, waar het vervolgens zelfstandig wordt afgehandeld/verwerkt. Een abonnement op een onderwerp lijkt op een virtuele wachtrij die kopieën van de berichten ontvangen die naar het onderwerp zijn verzonden. U kunt eventueel per abonnement filterregels voor een onderwerp registreren, waardoor u met behulp van een filter of een beperking kunt bepalen welke berichten naar een onderwerp door welke onderwerpabonnementen worden ontvangen.

Met Service Bus-onderwerpen en -abonnementen kunt u opschalen naar het verwerken van grote aantallen berichten voor grote aantallen gebruikers en toepassingen.

Vereisten

Als u nog geen abonnement op Azure hebt, kunt u een gratis account maken voordat u begint.

In deze quickstart gebruikt u Azure Cloud Shell die u kunt starten nadat u zich hebt aangemeld bij Azure Portal. Zie Overzicht van Azure Cloud Shell voor meer informatie over Azure Cloud Shell. U kunt Azure PowerShell ook op uw computer installeren en gebruiken.

Een Service Bus-onderwerp en abonnementen maken

Elk abonnement op een onderwerp kan een kopie van elk bericht ontvangen. Onderwerpen zijn qua protocol en semantiek volledig compatibel met Service Bus-wachtrijen. Service Bus-onderwerpen ondersteunen een breed scala aan selectieregels met filtervoorwaarden, met optionele acties waarmee berichteigenschappen worden ingesteld of gewijzigd. Telkens wanneer een regel overeenkomt, wordt er een bericht gegenereerd. Volg deze koppeling voor meer informatie over regels, filters en acties.

  1. Meld u aan bij het Azure-portaal.

  2. Start Azure Cloud Shell door het pictogram te selecteren dat wordt weergegeven in de volgende afbeelding. Schakel over naar de Bash-modus als Cloud Shell zich in de PowerShell-modus bevindt.

  3. Voer de volgende opdracht uit om een Azure-resourcegroep te maken. Werk de naam en locatie van de resourcegroep desgewenst bij.

    az group create --name MyResourceGroup --location eastus
    
  4. Voer de volgende opdracht uit om een naamruimte voor Service Bus-berichten te maken. Werk de naam van de naamruimte zo bij dat deze uniek is.

    namespaceName=MyNameSpace$RANDOM
    az servicebus namespace create --resource-group MyResourceGroup --name $namespaceName --location eastus
    
  5. Voer de volgende opdracht uit om een onderwerp in de naamruimte te maken.

    az servicebus topic create --resource-group MyResourceGroup   --namespace-name $namespaceName --name MyTopic
    
  6. Het eerste abonnement op het onderwerp maken

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S1    
    
  7. Het tweede abonnement op het onderwerp maken

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S2    
    
  8. Het derde abonnement op het onderwerp maken

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S3    
    
  9. Maak een filter op het eerste abonnement met een filter met aangepaste eigenschappen (StoreId is Store1, Store2 of Store3).

    az servicebus topic subscription rule create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --subscription-name S1 --name MyFilter --filter-sql-expression "StoreId IN ('Store1','Store2','Store3')"    
    
  10. Maak een filter op het tweede abonnement met een filter met klanteigenschappen (StoreId = Store4).

    az servicebus topic subscription rule create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name myTopic --subscription-name S2 --name MySecondFilter --filter-sql-expression "StoreId = 'Store4'"    
    
  11. Maak een filter op het derde abonnement met een filter met klanteigenschappen (StoreId niet in Store1, Store2, Store3 of Store4).

    az servicebus topic subscription rule create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --subscription-name S3 --name MyThirdFilter --filter-sql-expression "StoreId NOT IN ('Store1','Store2','Store3', 'Store4')"     
    
  12. Voer de volgende opdracht uit om de primaire verbindingsreeks voor de naamruimte op te halen. U gebruikt deze verbindingsreeks om verbinding te maken met de wachtrij en berichten te verzenden en te ontvangen.

    az servicebus namespace authorization-rule keys list --resource-group MyResourceGroup --namespace-name $namespaceName --name RootManageSharedAccessKey --query primaryConnectionString --output tsv    
    

    Noteer de verbindingsreeks en de naam van het onderwerp. U gebruikt deze om berichten te verzenden en ontvangen.

Volgende stappen

Zie het volgende artikel voor meer informatie over het verzenden van berichten naar een onderwerp en het ontvangen van die berichten via een abonnement: selecteer de programmeertaal in de inhoudsopgave.