Aracılığıyla paylaş


Azure Event Grid'in MQTT aracı özelliğindeki Konu Alanları

Konu alanı, bir dizi konu şablonu aracılığıyla birden çok konuyu temsil eder. Konu şablonları, MQTT joker karakterleriyle birlikte değişkenleri destekleyen MQTT filtrelerinin bir uzantısıdır. Her konu alanı, aynı istemci kümesinin iletişim kurmak için kullanması gereken MQTT konularını temsil eder.

Konu alanları, her konu için erişimi yönetmek yerine bir konu grubuna aynı anda yayımlama veya abone olma erişimi vermenizi sağlayarak erişim denetimi yönetimini basitleştirmek için kullanılır. Herhangi bir MQTT konusunu yayımlamak veya abone olmak için şunları yapmanız gerekir:

  1. MQTT üzerinden iletişim kurması gereken her istemci için bir istemci kaynağı oluşturun.
  2. Aynı MQTT konusunu yayımlamak veya abone olmak için erişmesi gereken istemcileri içeren bir istemci grubu oluşturun.
  3. Hedeflenen konu/konu filtresinin temsil ettiği bir konu şablonu içeren bir konu alanı oluşturun.
  4. konu alanını yayımlamak veya abone olmak için istemci grubuna erişim vermek için bir izin bağlaması oluşturun.

MQTT Konu filtresi:

MQTT konu filtresi, bir veya daha fazla kesiminin joker karakterlerini içerebilen ve birden çok MQTT konusuyla eşleşmesini sağlayan bir MQTT konusudur. Abonelik isteklerini basitleştirmek için kullanılır çünkü bir konu filtresi birden çok konuyla eşleşebilir.

MQTT aracısı, MQTT belirtimi tarafından tanımlanan tüm MQTT joker karakterlerini aşağıdaki gibi destekler:

  • +: tek bir kesimle eşleşir.
    • Örneğin, konu filtresi: "machines/+/alert" aşağıdaki konu başlıklarıyla eşleşir:
      • makineler/geçici/uyarı
      • makineler/nem/uyarı
  • #: konunun sonundaki sıfır veya daha fazla segmentle eşleşir.
    • Örneğin, konu filtresi: "machines/#" aşağıdaki konularla eşleşir:
      • Makine
      • makineler/geçici
      • makineler/nem
      • makineler/geçici/uyarı vb.

Joker karakterler hakkında daha fazla bilgi için bkz . MQTT belirtimindeki Konu Joker Karakterleri.

Konu şablonları

Konu şablonları, MQTT joker karakterleriyle birlikte değişkenleri destekleyen MQTT filtrelerinin bir uzantısıdır. Konu alanları yapılandırması ayrıca, bir istemci grubundaki her istemcinin kendi konusunu yayımlamak veya abone olmak için yetkilendirmesini denetlemenize olanak tanıyarak ayrıntılı erişim denetimi sağlar. Konu şablonlarının ayrıntılı erişim denetimi sağlama şekli hakkında daha fazla bilgi edinin.

Konu Alanı Yapılandırması:

Konu Alanları en fazla 10 konu şablonunu gruplandırabilir. Konu şablonları MQTT joker karakterlerini (+ ve #) ve aşağıdaki değişkenleri destekler:

  • ${client.authenticationName}: Bu değişken istemcinin kimlik doğrulama adını temsil eder. İstemci kimlik doğrulaması adları hakkında daha fazla bilgi edinin.
  • ${client.attributes.x}: Bu değişken, istemci oluşturma/güncelleştirme sırasında istemciye atanan özniteliği temsil eder; örneğin"x" öznitelik anahtarının tam dizesine eşit olur. Örneğin, bir istemci özniteliğine sahipse, "area/${client.attributes.area}/telemetry" konu şablonu yalnızca "area:section1" istemci özniteliğine> sahip istemcilerin "alan/bölüm1/telemetri" MQTT konusunda yayımlamasına olanak tanır. İstemci öznitelikleri hakkında daha fazla bilgi edinin.

Not:

  • $ ile başlayan konular dahili kullanım için ayrılmıştır.

  • Değişken, bir segmentin bir bölümünü veya bir kesimin tamamını temsil edebilir, ancak birden fazla segmenti kapsamaz. Örneğin, bir konu şablonu "machines/${client.authenticationName| içerebilir. factory1}/temp", "machines/machine1.factory1/temp", "machines/machine2.factory1/temp" vb. konu başlıklarıyla eşleşir.

  • Konu şablonları$ ve | özel karakterlerini kullanır ve bunların kullanılmakta olan kabuğa göre farklı bir şekilde kaçması gerekir. PowerShell'de$ araç/${dollar}telemetri/# ile kaçılabilir. PowerShell kullanıyorsanız, aşağıdaki örneklerde gösterildiği gibi bu özel karakterlerden kaçabilirsiniz:

    • "vehicles/${client.authenticationName|dollar}/#"

    • vehicles/${client.authenticationName"|"dollar}/#

Azure portalı yapılandırması:

Konu alanı oluşturmak için aşağıdaki adımları kullanın:

  • Azure portalında ad alanınıza gidin.
  • Konu Alanları'nın altında +Konu Alanı'na tıklayın.
  • Konu alanınıza bir Ad atayın.

Not

  • Konu alanı adı 3-50 karakter uzunluğunda olabilir.
  • Konu alanı adı alfasayısal, kısa çizgi (-) ve boşluk içermez.
  • +Konu şablonu ekle'yi seçerek en az bir konu şablonu ekleyin.
  • Oluştur'u belirleyin.

Konu alanı yapılandırmasının ekran görüntüsü.

Azure CLI yapılandırması:

Konu alanı oluşturmak için aşağıdaki komutları kullanın:

az eventgrid namespace topic-space create -g myRG --namespace-name myNS -n myTopicSpace --topic-templates ['segment1/+/segment3/${client.authenticationName}', "segment1/${client.attributes.attribute1}/segment3/#"]

Not

Konu alanı yapılandırma güncelleştirmelerinin yayılması birkaç dakika sürebilir.

Sonraki adımlar:

Daha fazla yetkilendirme ve kimlik doğrulaması hakkında daha fazla bilgi edinin:

Hızlı Başlangıç:

Kavramlar: