Hızlı Başlangıç: Azure portalıyla Event Grid Ad Alanı'nda MQTT iletilerini yayımlama ve abone olma
Bu hızlı başlangıçta, Azure portalını kullanarak MQTT aracısı etkin bir Event Grid ad alanı oluşturacak, istemciler, istemci grupları ve konu alanları gibi alt kaynaklar oluşturacak, istemcilere konu alanlarını yayımlama ve abone olma erişimi ve ardından istemciler arasında ileti yayımlayıp alacaksınız.
Önkoşullar
- Azure aboneliğiniz yoksa ücretsiz Bir Azure hesabı oluşturun.
- Azure Event Grid'i yeni kullanıyorsanız bu öğreticiye başlamadan önce Event Grid'e genel bakış bölümüne göz atın.
- Güvenlik duvarınızda 8883 numaralı bağlantı noktasının açık olduğundan emin olun. Bu öğreticideki örnek, 8883 numaralı bağlantı noktası üzerinden iletişim kuran MQTT protokolunu kullanır. Bu bağlantı noktası bazı kurumsal ve eğitim ağı ortamlarında engellenebilir.
- Parmak izini oluşturmak ve istemci bağlantısının kimliğini doğrulamak için bir X.509 istemci sertifikasına ihtiyacınız vardır.
Örnek istemci sertifikası ve parmak izi oluşturma
Henüz bir sertifikanız yoksa, CLI adımını kullanarak örnek bir sertifika oluşturabilirsiniz. Windows için el ile yüklemeyi göz önünde bulundurun.
Adım başarıyla yüklendikten sonra, kullanıcı profili klasörünüzde bir komut istemi açmanız gerekir (Win+R türü %USERPROFILE%).
Kök ve ara sertifikalar oluşturmak için aşağıdaki komutu çalıştırın. Sonraki adımda kullanılması gereken parolayı unutmayın.
step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
İlk istemci için bir sertifika oluşturmak için oluşturulan CA dosyalarını kullanın. komutundaki sertifika ve gizli dizi dosyaları için doğru yolu kullandığınızdan emin olun.
step certificate create client1-authn-ID client1-authn-ID.pem client1-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
Parmak izini görüntülemek için Adım komutunu çalıştırın.
step certificate fingerprint client1-authn-ID.pem
Şimdi ikinci istemci için bir sertifika oluşturun.
step certificate create client2-authn-ID client2-authn-ID.pem client2-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
İkinci istemciyle kullanılacak parmak izini görüntülemek için Adım komutunu çalıştırın.
step certificate fingerprint client2-authn-ID.pem
Ad alanı oluşturma
Azure portalda oturum açın.
Arama çubuğuna Event Grid Ad Alanları yazın ve açılan listeden Event Grid Ad Alanları'nı seçin.
Event Grid Ad Alanları sayfasında araç çubuğunda + Oluştur'u seçin.
Ad alanı oluştur sayfasında şu adımları izleyin:
Azure aboneliği seçin.
Mevcut bir kaynak grubunu seçin veya Yeni oluştur'u seçin ve kaynak grubu için bir ad girin.
Ad alanı için benzersiz bir ad sağlayın. Ad alanı adı bir DNS girdisini temsil ettiğinden bölge başına benzersiz olmalıdır. Görüntüde gösterilen adı kullanmayın. Bunun yerine kendi adınızı oluşturun; 3-50 karakter arasında olmalı ve yalnızca a-z, A-Z, 0-9 ve
-
değerlerini içermelidir.Event Grid ad alanı için bir konum seçin. Şu anda Event Grid ad alanı yalnızca belirli bölgelerde kullanılabilir.
Sayfanın alt kısmındaki Gözden geçir ve oluştur'u seçin.
Ad alanı oluştur sayfasının Gözden geçir + oluştur sekmesinde Oluştur'u seçin.
Not
Hızlı Başlangıç'ı basit tutmak için yalnızca Temel Bilgiler sayfasını kullanarak bir ad alanı oluşturacaksınız. Sihirbazın diğer sayfalarında ağ, güvenlik ve diğer ayarları yapılandırma hakkında ayrıntılı adımlar için bkz . Ad Alanı Oluşturma.
Dağıtım başarılı olduktan sonra Kaynağa git'i seçerek ad alanınızın Event Grid Ad Alanına Genel Bakış sayfasına gidin.
Genel Bakış sayfasında, MQTT aracısının Devre Dışı durumunda olduğunu görürsünüz. MQTT aracısını etkinleştirmek için Devre Dışı bağlantısını seçin, sizi Yapılandırma sayfasına yönlendirir.
Yapılandırma sayfasında, MQTT aracısını etkinleştir seçeneğini belirleyin ve ardından ayarları uygulamak için Uygula'yı seçin.
İstemciler oluşturma
Soldaki menüdeN MQTT aracısı bölümünde İstemciler'i seçin.
İstemciler sayfasında araç çubuğunda + İstemci'yi seçin.
İstemci oluştur sayfasında, istemci için bir ad girin. İstemci adları bir ad alanında benzersiz olmalıdır.
İstemci kimlik doğrulaması adı varsayılan olarak istemci adı olarak ayarlanır. Bu öğretici için olarak değiştirin
client1-authn-ID
. Bu adı CONNECT paketine eklemenizUsername
gerekir.Bu öğreticide parmak izi tabanlı kimlik doğrulaması kullanacaksınız. İlk istemci sertifikasının parmak izini Birincil Parmak İzi'ne ekleyin.
Başka bir istemci oluşturmak için araç çubuğunda Oluştur'u seçin.
adlı
client2
ikinci bir istemci oluşturmak için yukarıdaki adımları yineleyin. Kimlik doğrulama adını olarakclient2-authn-ID
değiştirin ve birincil parmak izine ikinci istemci sertifikasının parmak izini ekleyin.Not
- Hızlı Başlangıç'ı basit tutmak için kimlik doğrulaması için Parmak izi eşleşmesi kullanacaksınız. İstemci kimlik doğrulaması için X.509 CA sertifika zincirini kullanma hakkında ayrıntılı adımlar için bkz . Sertifika zincirini kullanarak istemci kimlik doğrulaması.
- Ayrıca, bu alıştırma için ad alanında yer alan tüm istemcileri içeren varsayılan
$all
istemci grubunu kullanırız. İstemci özniteliklerini kullanarak özel istemci grupları oluşturma hakkında daha fazla bilgi edinmek için bkz. istemci grupları.
Konu alanları oluşturma
Soldaki menüdeN MQTT aracısı bölümünde Konu alanları'nı seçin.
Konu alanları sayfasında araç çubuğunda + Konu alanı'nı seçin.
Konu alanı oluştur sayfasında konu alanı için bir ad belirtin.
Konu şablonu için girin
contosotopics/topic1
ve ardından Oluştur'u seçerek konu alanını oluşturun.
İzin bağlamalarını kullanarak erişim denetimini yapılandırma
Soldaki menüdeN MQTT aracısı bölümünde İzin bağlamaları'nı seçin.
İzin bağlamaları sayfasında araç çubuğunda + İzin bağlaması'nı seçin.
İzin bağlamasını aşağıdaki gibi yapılandırın:
İzin bağlaması için bir ad sağlayın. Örneğin,
contosopublisherbinding
.İstemci grubu adı için $all'ı seçin.
Konu alanı adı için önceki adımda oluşturduğunuz konu alanını seçin.
Konu alanında istemci grubuna Publisher izni verin.
İzin bağlamasını oluşturmak için Oluştur'u seçin.
Araç çubuğunda + İzin bağlaması'nı seçerek bir izin bağlaması daha (
contososubscriberbinding
) oluşturun.Bir ad sağlayın ve gösterildiği gibi $all istemci grubu abonesine ContosoTopicSpace erişimi verin.
İzin bağlamasını oluşturmak için Oluştur'u seçin.
MQTTX uygulamasını kullanarak istemcileri EG Ad Alanına bağlama
MQTT iletilerini yayımlamak/abone olmak için sık kullandığınız araçlardan herhangi birini kullanabilirsiniz. Tanıtım amacıyla, 'den https://mqttx.app/indirilebilen MQTTX uygulaması kullanılarak yayımlama/abone olma gösterilir.
Sol taraftaki gezinti çubuğundan öğesini seçin + .
ile istemci1'i yapılandırma
Olarak
client1
adlandır (bu değer herhangi bir şey olabilir)İstemci kimliği olarak
client1-session1
(CONNECT paketindeki İstemci Kimliği, istemci bağlantısının oturum kimliğini tanımlamak için kullanılır)Kullanıcı adı olarak
client1-authn-ID
. Bu değer, Azure portalında istemciyi oluştururken belirttiğiniz İstemci Kimlik Doğrulama Adı değeriyle eşleşmelidir.Önemli
Kullanıcı adı, istemci meta verilerindeki istemci kimlik doğrulaması adıyla eşleşmelidir.
Ad alanının Genel Bakış sayfasından konak adını MQTT ana bilgisayar adı olarak güncelleştirin.
Bağlantı noktasını 8883 olarak güncelleştirin.
SSL/TLS'yi AÇI olarak değiştirin.
Hizmet sertifikası doğrulamasını sağlamak için SSL Güvenli'yi AÇI olarak değiştirin.
Sertifika olarak CA veya Otomatik olarak imzalanan sertifikalar'ı seçin.
İstemci sertifika dosyasının yolunu belirtin.
İstemci anahtarı dosyasının yolunu belirtin.
Ayarların geri kalanı önceden tanımlanmış varsayılan değerlerle bırakılabilir.
İstemciyi MQTT aracısına bağlamak için Bağlan'ı seçin.
yukarıdaki adımları tekrarlayarak ikinci istemci istemci2'yi gösterildiği gibi ilgili kimlik doğrulama bilgileriyle bağlayın.
MQTTX uygulamasını kullanarak yayımlama/abone olma
İstemcileri bağladıktan sonra, client2 için + Yeni Abonelik düğmesini seçin.
Konu olarak ekleyin
contosotopics/topic1
ve Onayla'yı seçin. Diğer alanları mevcut varsayılan değerlerle bırakabilirsiniz.Sol rayda client1'i seçin.
İstemci1 için, ileti oluşturma kutusunun üzerine yayımlanması gereken konu olarak yazın
contosotopics/topic1
.İleti oluşturma. Gösterildiği gibi herhangi bir biçimi veya JSON'i kullanabilirsiniz.
Gönder düğmesini seçin.
İleti, istemci 1'de yayımlanmış olarak görünmelidir.
İstemci2'ye geçin. İstemci2'nin iletiyi aldığını onaylayın.