Tworzenie tematu i subskrypcji usługi Service Bus przy użyciu interfejsu wiersza polecenia platformy Azure

W tym przewodniku Szybki start utworzysz temat usługi Service Bus przy użyciu interfejsu wiersza polecenia platformy Azure, a następnie utworzysz subskrypcje tego tematu.

Co to są tematy i subskrypcje usługi Service Bus?

Tematy i subskrypcje usługi Service Bus obsługują model komunikacji z użyciem publikowania/subskrypcji komunikatów. Podczas korzystania z tematów i subskrypcji składniki aplikacji rozproszonej nie komunikują się bezpośrednio ze sobą, lecz wymieniają komunikaty za pośrednictwem tematu, która działa jako pośrednik.

TopicConcepts

W przeciwieństwie do kolejek usługi Service Bus, w których każdy komunikat jest przetwarzany przez jednego konsumenta, tematy i subskrypcje zapewniają formę komunikacji jeden do wielu przy użyciu wzorca publikowania/subskrybowania. Istnieje możliwość zarejestrowania wielu subskrypcji danego tematu. Po wysłaniu komunikatu do tematu jest on następnie udostępniany poszczególnym subskrypcjom w celu niezależnej obsługi lub niezależnego przetworzenia. Subskrypcja tematu przypomina wirtualną kolejkę, która odbiera kopie komunikatów wysłanych do tematu. Opcjonalnie możesz zarejestrować reguły filtrowania dla tematu dla poszczególnych subskrypcji, co pozwala filtrować lub ograniczać komunikaty do tematu, które są odbierane przez subskrypcje tematu.

Tematy i subskrypcje usługi Service Bus umożliwiają skalowanie w celu przetworzenia dużej liczby komunikatów przez dużą liczbę użytkowników i aplikacji.

Wymagania wstępne

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem możesz utworzyć bezpłatne konto.

W tym przewodniku Szybki start użyjesz usługi Azure Cloud Shell, którą można uruchomić po zalogowaniu się do witryny Azure Portal. Aby uzyskać szczegółowe informacje na temat usługi Azure Cloud Shell, zobacz Omówienie usługi Azure Cloud Shell. Możesz również zainstalować program Azure PowerShell i używać go na swojej maszynie.

Tworzenie tematu i subskrypcji usługi Service Bus

Każda subskrypcja tematu może otrzymywać kopie wszystkich komunikatów. Tematy są w pełni protokołowane i semantycznie zgodne z kolejkami usługi Service Bus. Tematy usługi Service Bus obsługują najróżniejsze reguły wyboru z warunkami filtru, z użyciem opcjonalnych akcji, które ustawiają lub modyfikują właściwości komunikatów. Za każdym razem, gdy reguła pasuje, generuje komunikat. Aby dowiedzieć się więcej o regułach, filtrach i akcjach, kliknij ten link.

  1. Zaloguj się w witrynie Azure Portal.

  2. Uruchom usługę Azure Cloud Shell, wybierając ikonę pokazaną na poniższej ilustracji. Przełącz się do trybu powłoki Bash , jeśli usługa Cloud Shell jest w trybie programu PowerShell .

  3. Uruchom następujące polecenie, aby utworzyć grupę zasobów platformy Azure. Zaktualizuj nazwę grupy zasobów i lokalizację, jeśli chcesz.

    az group create --name MyResourceGroup --location eastus
    
  4. Uruchom następujące polecenie, aby utworzyć przestrzeń nazw obsługi komunikatów usługi Service Bus. Zaktualizuj nazwę przestrzeni nazw, aby być unikatowa.

    namespaceName=MyNameSpace$RANDOM
    az servicebus namespace create --resource-group MyResourceGroup --name $namespaceName --location eastus
    
  5. Uruchom następujące polecenie, aby utworzyć temat w przestrzeni nazw.

    az servicebus topic create --resource-group MyResourceGroup   --namespace-name $namespaceName --name MyTopic
    
  6. Tworzenie pierwszej subskrypcji tematu

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S1    
    
  7. Tworzenie drugiej subskrypcji tematu

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S2    
    
  8. Tworzenie trzeciej subskrypcji tematu

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S3    
    
  9. Utwórz filtr dla pierwszej subskrypcji z filtrem przy użyciu właściwości niestandardowych (StoreId jest jednym z , Store2i Store3).Store1

    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. Tworzenie filtru dla drugiej subskrypcji z filtrem przy użyciu właściwości klienta (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. Utwórz filtr dla trzeciej subskrypcji z filtrem przy użyciu właściwości klienta (StoreId nie w Store1, , Store3Store2lub 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. Uruchom następujące polecenie, aby uzyskać parametry połączenia podstawowe dla przestrzeni nazw. Ta parametry połączenia służy do nawiązywania połączenia z kolejką i wysyłania i odbierania komunikatów.

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

    Zanotuj parametry połączenia i nazwę tematu. Służy do wysyłania i odbierania komunikatów.

Następne kroki

Aby dowiedzieć się, jak wysyłać komunikaty do tematu i odbierać te komunikaty za pośrednictwem subskrypcji, zobacz następujący artykuł: wybieranie języka programowania w spisie treści.