Delen via


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

In deze quickstart gebruikt u 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 ondersteunen een communicatiemodel voor publiceren/abonneren . Wanneer u onderwerpen en abonnementen gebruikt, communiceren onderdelen van een gedistribueerde toepassing niet rechtstreeks met elkaar; In plaats daarvan wisselen ze berichten uit via een onderwerp, dat als intermediair fungeert.

TopicConcepts

In tegenstelling tot Service Bus-wachtrijen, waarin elk bericht wordt verwerkt door één consument, bieden onderwerpen en abonnementen een een-op-veel-communicatievorm, met behulp van een publicatie-/abonneerpatroon. Het is mogelijk om meerdere abonnementen te registreren voor een onderwerp. Wanneer een bericht naar een onderwerp wordt verzonden, wordt het vervolgens voor elk abonnement beschikbaar gesteld om onafhankelijk van elkaar af te handelen/verwerken. Een abonnement op een onderwerp lijkt op een virtuele wachtrij die kopieën ontvangt van de berichten die naar het onderwerp zijn verzonden. U kunt eventueel filterregels voor een onderwerp per abonnement registreren, zodat u kunt filteren of beperken welke berichten naar een onderwerp worden ontvangen door welke onderwerpabonnementen.

Met Service Bus-onderwerpen en -abonnementen kunt u schalen om een groot aantal berichten te verwerken voor een groot aantal gebruikers en toepassingen.

Vereiste voorwaarden

Als u geen Azure-abonnement 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 installeren en gebruiken op uw computer.

Een Service Bus-onderwerp en -abonnementen maken

Elk abonnement op een onderwerp kan een kopie van elk bericht ontvangen. Onderwerpen zijn volledig protocol- en semantisch verenigbaar 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 de Cloud Shell zich in de PowerShell-modus bevindt.

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

    az group create --name MyResourceGroup --location eastus
    
  4. Voer de volgende opdracht uit om een Service Bus-berichtennaamruimte te maken. Werk de naam van de naamruimte bij zodat 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 voor het eerste abonnement met een filter met behulp van aangepaste eigenschappen (StoreId is een van Store1, Store2en 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. Een filter maken voor het tweede abonnement met een filter met behulp van 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 voor het derde abonnement met behulp van 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 onderwerpnaam. U gebruikt ze om berichten te verzenden en te ontvangen.

Volgende stappen

Als u wilt weten hoe u berichten naar een onderwerp verzendt en deze berichten ontvangt via een abonnement, raadpleegt u het volgende artikel: selecteer de programmeertaal in de inhoudslijst.