Använda Azure CLI för att skapa ett Service Bus-ämne och prenumerationer på ämnet

I den här snabbstarten använder du Azure CLI för att skapa ett Service Bus-ämne och sedan skapa prenumerationer på det ämnet.

Vad är Service Bus-ämnen och -prenumerationer?

Service Bus-ämnen och -prenumerationer stöder en publicera/prenumerera-modell för meddelandekommunikation. När du använder ämnen och prenumerationer så kommunicerar inte komponenterna i ett distribuerat program direkt med varandra. Istället så utbyter de meddelanden via ett ämne, som agerar mellanhand.

TopicConcepts

Till skillnad från Service Bus-köer, där varje meddelande bearbetas av en enskild konsument, ger ämnen och prenumerationer en en-till-många-form av kommunikation med hjälp av ett publicerings-/prenumerationsmönster. Det är möjligt att registrera flera prenumerationer för ett ämne. När ett meddelande skickas till ett ämne så görs det tillgängligt för varje prenumeration för oberoende hantering/bearbetning. En prenumeration på ett ämne liknar en virtuell kö som tar emot kopior av meddelanden som har skickats till ämnet. Du kan också registrera filterregler för ett ämne per prenumeration, vilket gör att du kan filtrera eller begränsa vilka meddelanden till ett ämne som tas emot av vilka ämnesprenumerationer.

Med Service Bus-ämnen och -prenumerationer kan du skala för att bearbeta ett stort antal meddelanden över ett stort antal användare och program.

Förutsättningar

Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

I den här snabbstarten använder du Azure Cloud Shell som du kan starta efter inloggningen till Azure-portalen. Mer information om Azure Cloud Shell finns i Översikt över Azure Cloud Shell. Du kan också installera och använda Azure PowerShell på datorn.

Skapa ett Service Bus-ämne och prenumerationer

Varje prenumeration på ett ämne får en kopia av varje meddelande. Ämnen är fullständigt protokollmässigt och semantiskt kompatibla med Service Bus-köer. Service Bus-ämnen stöder en mängd olika urvalsregler med filtervillkor, med valfria åtgärder som anger eller ändrar meddelandeegenskaperna. Varje gång en regel matchar så genererar den ett meddelande. Mer information om regler, filter och åtgärder, finns på den här länken.

  1. Logga in på Azure-portalen.

  2. Starta Azure Cloud Shell genom att välja ikonen som visas i följande bild. Växla till Bash-läge om Cloud Shell är i PowerShell-läge .

  3. Kör följande kommando för att skapa en Azure-resursgrupp. Uppdatera resursgruppens namn och plats om du vill.

    az group create --name MyResourceGroup --location eastus
    
  4. Kör följande kommando för att skapa ett namnområde för Service Bus-meddelanden. Uppdatera namnet på namnområdet så att det blir unikt.

    namespaceName=MyNameSpace$RANDOM
    az servicebus namespace create --resource-group MyResourceGroup --name $namespaceName --location eastus
    
  5. Kör följande kommando för att skapa ett ämne i namnområdet.

    az servicebus topic create --resource-group MyResourceGroup   --namespace-name $namespaceName --name MyTopic
    
  6. Skapa den första prenumerationen på ämnet

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S1    
    
  7. Skapa den andra prenumerationen på ämnet

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S2    
    
  8. Skapa den tredje prenumerationen på ämnet

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S3    
    
  9. Skapa ett filter för den första prenumerationen med ett filter med hjälp av anpassade egenskaper (StoreId är en av Store1, Store2och 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. Skapa ett filter för den andra prenumerationen med ett filter med hjälp av kundegenskaper (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. Skapa ett filter för den tredje prenumerationen med ett filter med hjälp av kundegenskaper (StoreId inte i Store1, Store2, Store3eller 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. Kör följande kommando för att hämta den primära anslutningssträng för namnområdet. Du använder den här anslutningssträng för att ansluta till kön och skicka och ta emot meddelanden.

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

    Anteckna anslutningssträng och ämnesnamnet. Du använder dem för att skicka och ta emot meddelanden.

Nästa steg

Mer information om hur du skickar meddelanden till ett ämne och tar emot dessa meddelanden via en prenumeration finns i följande artikel: välj programmeringsspråket i TOC.