Använd Azure CLI för att skapa Service Bus ett ä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, tillhandahåller ämnen och prenumerationer en en-till-många-kommunikation med hjälp av ett publicera/prenumerera-mö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. Om du vill kan du 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.

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 en 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 att ha loggat in på Azure Portal. 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.

    Starta Cloud Shell

  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 Service Bus namnområdet för meddelanden. Uppdatera namnet på namnområdet så att det är 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 anpassade egenskaper ( StoreId är ett av , och Store1Store2Store3 ).

    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 , , eller Store1Store2Store3Store4 ).

    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ängen för namnområdet. Du använder den här anslutningssträngen 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ängen och ämnesnamnet. Du använder dem för att skicka och ta emot meddelanden.

Nästa steg

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åk i toC.