Bir Service Bus konusu ve konu başlığına abonelikler oluşturmak için Azure CLI kullanma

Bu hızlı başlangıçta, Azure CLI kullanarak bir Service Bus konusu oluşturacak ve ardından bu konuya abonelikler oluşturacaksınız.

Service Bus konuları ve abonelikleri nelerdir?

Service Bus konuları ve abonelikleri publish/subscribe mesajlaşma iletişim modelini destekler. Konular ve abonelikler kullanıldığında, dağıtılmış uygulamanın bileşenleri birbirleriyle doğrudan iletişim kurmazlar; bunun yerine bir aracı gibi davranan bir konu aracılığıyla iletileri değiş tokuş eder.

TopicConcepts

Her iletinin tek bir tüketici tarafından işlendiği Service Bus kuyruklarının aksine, konular ve abonelikler yayımlama/abone olma deseni kullanarak bire çok iletişim biçimi sağlar. Bir konuya birden fazla abonelik kaydedilebilir. Bir konuya ileti gönderildiğinde, bundan sonra, bağımsız olarak ele almak/işlemek amacıyla her abonelik için kullanılabilir hale getirilir. Bir konuya abone olunması, konuya gönderilmiş olan iletilerin kopyaların alan sanal kuyruğa benzer. İsteğe bağlı olarak, bir konu için filtre kurallarını abonelik başına kaydedebilirsiniz. Bu sayede, hangi konu abonelikleri tarafından hangi iletilerin alınabileceğini filtreleyebilir veya kısıtlayabilirsiniz.

Service Bus konuları ve abonelikleri, çok sayıda kullanıcı ve uygulama genelinde çok sayıda iletiyi işlemek için ölçeklendirmenizi sağlar.

Önkoşullar

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturabilirsiniz.

Bu hızlı başlangıçta, Azure portalında oturum açıldıktan sonra başlatabileceğiniz Azure Cloud Shell'i kullanacaksınız. Azure Cloud Shell hakkında ayrıntılı bilgi için bkz . Azure Cloud Shell'e Genel Bakış. Ayrıca makinenize Azure PowerShell yükleyebilir ve kullanabilirsiniz.

Service Bus konu başlığı ve abonelikleri oluşturma

Her konu başlığı aboneliği her iletinin bir kopyasını alabilir. Konular, protokol ve anlam açılarından Service Bus kuyrukları ile tam olarak uyumludur. Service Bus konu başlıkları, filtreleme koşullarını ve ileti özelliklerini belirleyen veya değiştiren isteğe bağlı eylemleri olan geniş bir seçim kuralı yelpazesini destekler. Bir kural eşleştiğinde bir ileti oluşturulur. Kurallar, filtreler ve eylemler hakkında daha fazla bilgi edinmek için bu bağlantıyı izleyin.

  1. Azure Portal’ında oturum açın.

  2. Aşağıdaki görüntüde gösterilen simgeyi seçerek Azure Cloud Shell'i başlatın. Cloud Shell PowerShell modundaysa Bash moduna geçin.

  3. Bir Azure kaynak grubu oluşturmak için aşağıdaki komutu çalıştırın. İstersen, kaynak grubu adını ve konumunu güncelleştirin.

    az group create --name MyResourceGroup --location eastus
    
  4. Service Bus mesajlaşma ad alanı oluşturmak için aşağıdaki komutu çalıştırın. Ad alanının adını benzersiz olacak şekilde güncelleştirin.

    namespaceName=MyNameSpace$RANDOM
    az servicebus namespace create --resource-group MyResourceGroup --name $namespaceName --location eastus
    
  5. Ad alanında bir konu oluşturmak için aşağıdaki komutu çalıştırın.

    az servicebus topic create --resource-group MyResourceGroup   --namespace-name $namespaceName --name MyTopic
    
  6. Konu başlığına ilk aboneliği oluşturma

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S1    
    
  7. Konu başlığına ikinci aboneliği oluşturma

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S2    
    
  8. Konu başlığına üçüncü aboneliği oluşturma

    az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S3    
    
  9. Özel özellikleri kullanarak filtre içeren ilk abonelikte bir filtre oluşturun (StoreId , Store2ve Store3' lerden Store1biridir).

    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. Müşteri özelliklerini kullanarak ikinci abonelikte filtre oluşturma (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. Üçüncü abonelikte, müşteri özelliklerini (StoreId, Store2, Store3veya Store4içinde değilStore1) kullanarak filtre içeren bir filtre oluşturun.

    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. Ad alanının birincil bağlantı dizesi almak için aşağıdaki komutu çalıştırın. Kuyruğa bağlanmak ve ileti gönderip almak için bu bağlantı dizesi kullanırsınız.

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

    bağlantı dizesi ve konu adını not edin. Bunları ileti göndermek ve almak için kullanırsınız.

Sonraki adımlar

Bir konuya ileti göndermeyi ve bu iletileri abonelik aracılığıyla almayı öğrenmek için aşağıdaki makaleye bakın: İçindekiler bölümünde programlama dilini seçin.