Použití Azure CLI k vytvoření tématu a odběrů služby Service Bus
V tomto rychlém startu pomocí Azure CLI vytvoříte téma služby Service Bus a pak vytvoříte odběry tohoto tématu.
Co jsou témata a předplatné služby Service Bus?
Témata a předplatné služby Service Bus podporují komunikační model zasílání zpráv publikování/přihlášení. Součásti distribuované aplikace při používání témat a předplatných nekomunikují navzájem přímo. Místo toho si zprávy vyměňují prostřednictvím tématu, které slouží jako zprostředkovatel.
Na rozdíl od front Service Bus, ve kterých je každá zpráva zpracována jedním příjemcem, témata a odběry poskytují formu komunikace 1:N pomocí vzoru publikování/odběru. K jednomu tématu můžete zaregistrovat několik předplatných. Při odeslání zprávy do tématu bude zpráva zpřístupněná všem předplatným, aby ji nezávisle zpracovala. Předplatné tématu se podobá virtuální frontě, která obdrží kopii zpráv, které byly odeslány do tématu. Volitelně můžete zaregistrovat pravidla filtru pro téma na základě předplatného, která vám umožní filtrovat nebo omezit zprávy na téma, podle kterých odběrů témat.
Témata a odběry služby Service Bus umožňují škálovat a zpracovávat velký počet zpráv napříč velkým počtem uživatelů a aplikací.
Požadavky
Pokud ještě nemáte předplatné Azure, můžete si vytvořit bezplatný účet před tím, než začnete.
V tomto rychlém startu použijete Azure Cloud Shell, který můžete spustit po přihlášení k webu Azure Portal. Podrobnosti o Azure Cloud Shellu najdete v přehledu služby Azure Cloud Shell. Na svém počítači můžete také nainstalovat a používat Azure PowerShell.
Vytvoření tématu Service Busu a odběrů
Každý odběr tématu může přijímat kopie všech zpráv. Témata jsou co do protokolu a sémantiky plně kompatibilní s frontami služby Service Bus. Témata služby Service Bus podporují širokou škálu pravidel pro výběr s podmínkami filtrů, včetně volitelných akcí, kterými se nastavují nebo upravují vlastnosti zprávy. Při každé shodě s pravidlem se vytvoří zpráva. Další informace o pravidlech, filtrech a akcích získáte pomocí tohoto odkazu.
Přihlaste se k portálu Azure.
Spusťte Azure Cloud Shell tak, že vyberete ikonu zobrazenou na následujícím obrázku. Pokud je Cloud Shell v režimu PowerShellu, přepněte do režimu Bash.
Spuštěním následujícího příkazu vytvořte skupinu prostředků Azure. Pokud chcete, aktualizujte název skupiny prostředků a umístění.
az group create --name MyResourceGroup --location eastus
Spuštěním následujícího příkazu vytvořte obor názvů zasílání zpráv služby Service Bus. Aktualizujte název oboru názvů tak, aby byl jedinečný.
namespaceName=MyNameSpace$RANDOM az servicebus namespace create --resource-group MyResourceGroup --name $namespaceName --location eastus
Spuštěním následujícího příkazu vytvořte téma v oboru názvů.
az servicebus topic create --resource-group MyResourceGroup --namespace-name $namespaceName --name MyTopic
Vytvoření prvního odběru tématu
az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S1
Vytvoření druhého odběru tématu
az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S2
Vytvoření třetího odběru tématu
az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S3
Vytvořte filtr pro první předplatné pomocí filtru pomocí vlastních vlastností (
StoreId
je jedním zStore1
,Store2
aStore3
).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')"
Vytvoření filtru pro druhé předplatné s filtrem pomocí vlastností zákazníka (
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'"
Vytvořte filtr třetího předplatného s filtrem pomocí vlastností zákazníka (
StoreId
nikoli vStore1
,Store2
,Store3
neboStore4
).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')"
Spuštěním následujícího příkazu získejte primární připojovací řetězec oboru názvů. Pomocí tohoto připojovací řetězec se můžete připojit k frontě a odesílat a přijímat zprávy.
az servicebus namespace authorization-rule keys list --resource-group MyResourceGroup --namespace-name $namespaceName --name RootManageSharedAccessKey --query primaryConnectionString --output tsv
Poznamenejte si připojovací řetězec a název tématu. Používáte je k odesílání a přijímání zpráv.
Další kroky
Informace o tom, jak odesílat zprávy do tématu a přijímat tyto zprávy prostřednictvím odběru, najdete v následujícím článku: Vyberte programovací jazyk v obsahu.