Çalışma Azure IoT Edge mimarisini anlama

Aşağıdakiler için geçerlidir:yes icon IoT Edge 1.1 Diğer sürümler:IoT Edge 1.2

Aşağıdakiler için geçerlidir:yes icon IoT Edge 1.2 Diğer sürümler:IoT Edge 1.1

IoT Edge çalışma zamanı, bir cihazı bir IoT Edge cihazına dönüştüren program koleksiyonudur. Toplu olarak, IoT Edge çalışma zamanı bileşenleri IoT Edge uçta çalıştıracak kod almalarını ve sonuçları iletlerini sağlar.

Çalışma IoT Edge çalışma zamanı, aşağıdaki cihazlardaki IoT Edge sorumludur:

  • Cihaza iş yüklerini yükleyin ve güncelleştirin.

  • Cihazda Azure IoT Edge güvenlik standartlarını koruma.

  • Tüm modüllerin IoT Edge olduğundan emin olun.

  • Uzaktan izleme için modül durumunu buluta rapor edin.

  • Aşağı akış cihazları ve diğer cihazlar arasındaki IoT Edge yönetin.

  • Bir cihaz üzerinde modüller arasındaki IoT Edge yönetin.

  • Bir IoT Edge bulut arasındaki iletişimi yönetin.

  • Diğer cihazlar arasındaki IoT Edge yönetin.

Runtime communicates insights and module health to IoT Hub

Çalışma zamanının IoT Edge iki kategoriye ayrılır: iletişim ve modül yönetimi. Bu iki rol, çalışma zamanının parçası olan iki bileşen IoT Edge gerçekleştirilir. IoT Edge aracı modülleri dağıtır ve izlerken, IoT Edge hub'ı iletişimden sorumludur.

Hem IoT Edge aracı hem de IoT Edge hub'ı, bir IoT Edge cihazda çalışan diğer modüller gibi modüldür. Bunlar bazen çalışma zamanı modülleri olarak adlandırılır.

IoT Edge aracısı

IoT Edge aracı, çalışma zamanının iki modülden Azure IoT Edge olur. Modüllerin örneğini çalıştırmak, çalışmaya devam edeceklerini sağlamak ve modüllerin durumunu yeniden çalışma durumuna raporlamak IoT Hub. Bu yapılandırma verileri, aracı modül ikizi IoT Edge olarak yazılır.

Güvenlik IoT Edge daemon'ı, IoT Edge başlatma sırasında aracıyı başlatır. Aracı, modül ikizini IoT Hub bildirimini inceler. Dağıtım bildirimi, başlat olması gereken modülleri bildiren bir JSON dosyasıdır.

Dağıtım bildiriminde yer alan her öğe bir modül hakkında belirli bilgiler içerir ve IoT Edge modül yaşam döngüsünü denetlemek için IoT Edge aracı tarafından kullanılır. IoT Edge aracı tarafından modülleri kontrol etmek için kullanılan tüm özellikler hakkında daha fazla bilgi için IoT Edge aracı ve IoT Edge hub modül ikizlerinin özellikleri hakkında bilgi edinebilirsiniz.

IoT Edge aracı, çalışma zamanı yanıtını IoT Hub. Olası yanıtların listesi:

  • 200 - Tamam
  • 400 - Dağıtım yapılandırması hatalı biçimlendirilmiş veya geçersiz.
  • 417 - Cihazda dağıtım yapılandırma kümesi yok.
  • 412 - Dağıtım yapılandırmasında şema sürümü geçersiz.
  • 406 - IoT Edge cihaz çevrimdışı veya durum raporları gönderm yok.
  • 500 - Çalışma zamanında IoT Edge oluştu.

Dağıtım bildirimleri oluşturma hakkında daha fazla bilgi için bkz.Modül dağıtmayı ve IoT Edge.

Güvenlik

IoT Edge aracı, bir cihazın güvenliğinde kritik IoT Edge oynar. Örneğin, bir modülün görüntüsünü başlatmadan önce doğrulama gibi eylemleri gerçekleştirir.

Azure IoT Edge güvenlik çerçevesi hakkında daha fazla bilgi için güvenlik IoT Edge okuyun.

IoT Edge hub'ı

IoT Edge hub'ı, çalışma zamanı için Azure IoT Edge modüldür. Bu, aynı protokol uç noktalarını IoT Hub aynı protokol uç noktalarının açığa çıkararak yerel bir ara sunucu IoT Hub. Bu tutarlılık, istemcilerin IoT Edge çalışma IoT Hub.

IoT Edge hub'ı, yerel olarak çalışan bir IoT Hub sürümü değildir. IoT Edge hub'ı bazı görevleri yönetime sessizce IoT Hub. Örneğin, IoT Edge hub'ı ilk bağlantısında IoT Hub üzerinden yetkilendirme bilgilerini otomatik olarak indirir ve cihazın bağlanmasına olanak sağlar. İlk bağlantı kurulduktan sonra yetkilendirme bilgileri hub'ı tarafından yerel IoT Edge önbelleğe alın. Bu cihazdan gelecek bağlantılar, yetkilendirme bilgilerini buluttan yeniden indirmek zorunda kalmadan yetkilendirilecek.

Bulut iletişimi

IoT Edge hub'ı IoT Edge, IoT Edge bant genişliğini azaltmak için buluta gerçek bağlantı sayısını iyiler. IoT Edge hub'ı modüllerden veya aşağı akış cihazlarından mantıksal bağlantılar alır ve bunları buluta tek bir fiziksel bağlantı için birleştirir. Bu sürecin ayrıntıları çözümün geri kalanı için saydamdır. İstemciler, hepsi aynı bağlantı üzerinden gönderildiklerine rağmen bulutla kendi bağlantılarının olduğunu düşünüyor. IoT Edge hub'ı, aşağı akış cihazları tarafından kullanılan protokollerden bağımsız olarak bulutla yukarı akış iletişim kurmak için AMQP veya MQTT protokolünü kullanabilir. Ancak, IoT Edge hub'ı şu anda yalnızca AMQP'yi yukarı akış protokolü ve onun çoklama özellikleri olarak kullanarak mantıksal bağlantıları tek bir fiziksel bağlantıda birleştirmeyi destekler. AMQP varsayılan yukarı akış protokolüdür.

IoT Edge hub is a gateway between physical devices and IoT Hub

IoT Edge hub'ı, bağlantının bağlı olup olmadığını IoT Hub. Bağlantı kaybolursa, hub iletileri IoT Edge güncelleştirmeleri yerel olarak kaydeder. Bir bağlantı yeniden kurularak tüm veriler eşitler. Bu geçici önbellek için kullanılan konum, hub'ın modül ikiz IoT Edge özelliği tarafından belirlenir. Önbelleğin boyutu eşlenmemiştir ve cihazın depolama kapasitesi olduğu sürece büyür. Daha fazla bilgi için bkz. Çevrimdışı özellikler.

Modül iletişimi

IoT Edge hub'ı modül iletişimini kolaylaştırır. Bir IoT Edge hub'ı ileti aracısı olarak kullanmak modülleri birbirinden bağımsız tutar. Modüllerin yalnızca iletileri kabul etme girişlerini ve ileti yazacakları çıkışları belirtmesi gerekir. Çözüm geliştiricisi, modüllerin verileri bu çözüme özgü sırayla işlemesi için bu girişleri ve çıkışları bir araya bir araya getirdi.

IoT Edge Hub facilitates module-to-module communication

Bir modül, IoT Edge hub'a veri göndermek için SendEventAsync yöntemini çağıran bir modüldür. İlk bağımsız değişken, iletiyi göndermek için hangi çıktıyı belirtir. Aşağıdaki sahte kod output1 üzerinde bir ileti gönderir:

ModuleClient client = await ModuleClient.CreateFromEnvironmentAsync(transportSettings);
await client.OpenAsync();
await client.SendEventAsync("output1", message);

İleti almak için, belirli bir girişte gelen iletileri işen bir geri çağırmayı kaydedin. Aşağıdaki sahte kod, input1'de alınan tüm iletilerin işlenmede kullanılacak messageProcessor işlevini kaydettirmektedir:

await client.SetInputMessageHandlerAsync("input1", messageProcessor, userContext);

ModuleClient sınıfı ve iletişim yöntemleri hakkında daha fazla bilgi için tercih ettiğiniz SDK dili için API başvurusuna bakın: C#, C, Python,JavaveyaNode.js.

Çözüm geliştiricisi, hub'ın modüller arasında iletileri nasıl IoT Edge kuralları belirtmekle sorumludur. Yönlendirme kuralları bulutta tanımlanır ve modül ikiz IoT Edge hub'larına gönderiliyor. Veri yolları için IoT Hub söz dizimi, verilerde modüller arasındaki yolları tanımlamak Azure IoT Edge. Daha fazla bilgi için bkz. Modül dağıtmayı ve IoT Edge.

Routes between modules go through IoT Edge hub

Yerel iletişim

IoT Edge hub'ı yerel iletişimi kolaylaştırır. Cihaz ve modülleri birbirinden bağımsız tutmak için iletilere aracılık göndererek cihazdan modüle, modülden modüle, cihazdan cihaza iletişimlere olanak tanır.

Not

MQTT aracı özelliği, sürüm 1.2 IoT Edge genel önizleme sürümündedir. Açıkça etkinleştirilmesi gerekir.

IoT Edge hub'ı iki aracı mekanizmasını destekler:

  1. IoT Hub tarafından desteklenen ileti IoT Hub özellikleri,
  2. MQTT standart v3.1.1'e uygun genel amaçlı bir MQTT aracısı

Yönlendirmeyi kullanma

İlk aracı mekanizması, iletilerin cihazlar veya modüller arasında nasıl geçir IoT Hub için bu yönlendirme özelliklerinden faydalanıyor. İlk cihazlar veya modüller, iletileri kabul etme girişlerini ve ileti yazacakları çıkışları belirtir. Daha sonra çözüm geliştiricisi iletileri çıkışlar ve girişler gibi olası filtrelerle bir kaynak arasında yönlendirebilirsiniz.

Routes between modules go through IoT Edge hub

Yönlendirme, AMQP veya MQTT protokolü aracılığıyla Azure IoT Cihaz SDK'ları ile yerleşik cihazlar veya modüller tarafından kullanılabilir. Telemetri IoT Hub doğrudan yöntemler, C2D, ikizler gibi tüm mesajlaşma temelleri de desteklene, ancak kullanıcı tanımlı konular üzerinden iletişim desteklanmaz.

Yollar hakkında daha fazla bilgi için bkz. Modül dağıtmayı ve IoT Edge

MQTT aracıyı kullanma

İkinci aracı mekanizması standart bir MQTT aracıyı temel alan mekanizmadır. MQTT, kaynak kısıtlı cihazlarda en iyi performansı garantilayan basit bir ileti aktarım protokolüdür ve popüler bir yayımlama ve abone olma standardıdır. Cihazlar veya modüller, diğer cihazlar veya modüller tarafından yayınlanan iletileri almak için konulara abone olur. IoT Edge hub , MQTT sürümü 3.1.1 belirtimleriniizleyen kendi MQTT aracısını uygular.

MQTT Aracısı, yönlendirme ile karşılaştırıldığında iki ek iletişim desenini sağlar: yerel yayın ve noktadan noktaya iletişim. Yerel yayın, bir cihaz ya da modülün birden çok diğer cihazı veya modülü yerel olarak uyarması gerektiğinde faydalıdır. Noktadan noktaya iletişim, iki IoT Edge cihazın veya iki IoT aygıtının buluta gidiş dönüş olmadan yerel olarak iletişim kurmasına olanak sağlar.

Publish and subscribe locally with IoT Edge hub

MQTT Aracısı, MQTT Protokolü veya genel amaçlı MQTT istemcileri üzerinden iletişim kuran Azure IoT cihaz SDK 'Ları ile oluşturulmuş cihazlar veya modüller tarafından kullanılabilir. C2D tüm mesajlaşma IoT Hub özel durumları, örneğin telemetri, doğrudan Yöntemler, TWINS desteklenir. IoT Hub IoT Hub temel elemanlar tarafından kullanılan özel konular desteklenir ve Kullanıcı tanımlı konulardır. Bu konu, IoT Hub özel bir konu veya Kullanıcı tanımlı konu olabilir.

Yönlendirme mekanizmasından farklı olarak, ileti sıralaması yalnızca en iyi çaba olur ve ileti filtrelemesi aracı tarafından desteklenmez. Bu özelliklerin olmaması ancak MQTT aracısının yönlendirmeden daha hızlı olmasını sağlar.

MQTT Aracısı hakkında daha fazla bilgi için bkz. IoT Edge yayımlama ve abone olma

Aracılı mekanizmalar arasındaki karşılaştırma

Her aracılı mekanizmasıyla kullanılabilen özellikler şunlardır:

Özellikler Yönlendirme MQTT Aracısı
D2C telemetrisi
Yerel telemetri
DirectMethods
İkizi
Cihazlar için C2D
Sıralama
Filtreleme
Kullanıcı tanımlı konular
Cihazdan cihaza
Yerel yayın
Performans

IoT Edge hub 'ına bağlanma

IoT Edge hub, MQTT protokolü ya da AMQP protokolü üzerinden cihaz veya modül istemcilerinden gelen bağlantıları kabul eder.

Not

IoT Edge hub, MQTT veya AMQP kullanarak bağlanan istemcileri destekler. HTTP kullanan istemcileri desteklemez.

İstemci IoT Edge hub 'ına bağlandığı zaman şunlar olur:

  1. Aktarım Katmanı Güvenliği (TLS) kullanılıyorsa (önerilir), istemci ile IoT Edge hub arasında şifrelenmiş bir iletişim kurmak için bir TLS kanalı oluşturulur.
  2. Kimlik doğrulama bilgileri istemciden kendisini tanımlamak için IoT Edge hub 'a gönderilir.
  3. IoT Edge hub, yetkilendirme ilkesini temel alarak bağlantıyı yetkilendirir veya reddeder.

Güvenli bağlantılar (TLS)

Varsayılan olarak, IoT Edge merkezi yalnızca Aktarım Katmanı Güvenliği (TLS) ile güvenliği sağlanmış bağlantıları kabul eder, örneğin, üçüncü bir tarafın şifresini çözemediği şifreli bağlantılar.

İstemci, IoT Edge hub 'ına 8883 (MQTTS) veya 5671 (AMQPS) bağlantı noktasına bağlanırsa, bir TLS kanalının oluşturulması gerekir. TLS anlaşması sırasında, IoT Edge hub 'ı istemcinin doğrulanması gereken sertifika zincirini gönderir. Sertifika zincirini doğrulamak için, IoT Edge hub 'ının kök sertifikasının, istemcide güvenilir bir sertifika olarak yüklenmesi gerekir. Kök sertifikaya güvenilmiyorsa, istemci kitaplığı IoT Edge hub 'ı tarafından bir sertifika doğrulama hatası ile reddedilir.

Aracının bu kök sertifikasını cihaz istemcilerine yüklemek için izlenecek adımlar, saydam ağ geçidinde ve bir aşağı akış cihazı hazırlama belgelerinde açıklanmıştır. Modüller, IoT Edge Daemon API 'sinden yararlanarak IoT Edge hub 'ı ile aynı kök sertifikayı kullanabilir.

Kimlik Doğrulaması

IoT Edge merkezi yalnızca IoT Hub kimliği olan cihazlardan veya modüllerden (örn. IoT Hub kayıtlı) ve kimlik doğrulaması için IoT Hub tarafından desteklenen üç istemci kimlik doğrulama yönteminden birine sahip olan bağlantıları kabul eder: simetrik anahtar kimlik doğrulaması, x. 509.440 kendinden imzalı kimlikdoğrulama, x. 509.440 CA imzalı kimlik doğrulaması. Bu IoT Hub kimlikleri, IoT Edge hub 'ı tarafından yerel olarak doğrulanabilir, bu nedenle bağlantılar çevrimdışıyken da yapılabilir.

Notlar:

  • IoT Edge modüller Şu anda yalnızca simetrik anahtar kimlik doğrulamasını destekliyor.
  • Yalnızca Yerel Kullanıcı adı ve parolalara sahip MQTT istemcileri IoT Edge hub MQTT Aracısı tarafından kabul edilmez, IoT Hub kimliklerini kullanmaları gerekir.

Yetkilendirme

Kimliği doğrulandıktan sonra, IoT Edge hub 'ının istemci bağlantılarını yetkilendirmek için iki yolu vardır:

  • Bir istemcinin, IoT Hub tanımlı güvenilen istemciler kümesine ait olduğunu doğrulayarak. Güvenilen istemci kümesi, IoT Hub ' de üst/alt veya cihaz/modül ilişkileri ayarlanarak belirtilir. IoT Edge bir modül oluşturulduğunda, bu modülle IoT Edge cihazı arasında bir güven ilişkisi otomatik olarak oluşturulur. Bu, yönlendirme aracı tarafından desteklenen tek yetkilendirme modelidir.

  • Bir yetkilendirme ilkesi ayarlayarak. Bu yetkilendirme ilkesi, IoT Edge hub 'ında kaynaklara erişebilen tüm yetkilendirilmiş istemci kimliklerini listelerken bir belgedir. Bu, IoT Edge hub MQTT Aracısı tarafından kullanılan birincil yetkilendirme modelidir, ancak üst/alt ve cihaz/modül ilişkileri, IoT Hub konuları için MQTT Aracısı tarafından da anlaşılabilirler.

Uzaktan yapılandırma

IoT Edge hub 'ı tamamen bulut tarafından denetlenir. IoT Hub, yapılandırmasını kendi module ikiziaracılığıyla alır. Şunları içerir:

  • Rota yapılandırması
  • Yetkilendirme ilkeleri
  • MQTT köprü yapılandırması

Ayrıca, IoT Edge hub 'ında ortam değişkenleriayarlanarak birçok yapılandırma yapılabilir.

Çalışma zamanı kalite telemetrisi

IoT Edge, ürün kalitesini geliştirmek için konak çalışma zamanı ve sistem modülleriyle adsız telemetri toplar. Bu bilgilere çalışma zamanı kalite telemetrisi adı verilir. Toplanan telemetri, IoT Edge aracısından IoT Hub için düzenli olarak cihazdan buluta iletiler olarak gönderilir. Bu iletiler müşterinin normal telemetrisinde görünmez ve herhangi bir ileti kotasını tüketmez.

IoT Edge Aracısı ve hub, cihaz performansını anlamak için toplayabileceğinizi ölçümlerle üretir. Bu ölçümlerin bir alt kümesi, IoT Edge Aracısı tarafından çalışma zamanı kalite telemetrinin bir parçası olarak toplanır. Çalışma zamanı kalite telemetrisi için toplanan ölçümler etiketiyle etiketlidir ms_telemetry . Tüm kullanılabilir ölçümler hakkında daha fazla bilgi için bkz. yerleşik ölçümlere erişme.

Çalışma zamanı kalite telemetrisine yönelik anonim doğası sağlamak için, cihaz ve modül adları gibi tüm kişisel veya kuruluş tanımlanabilir bilgiler karşıya yüklenmeden önce kaldırılır.

IoT Edge Aracısı her saat telemetri toplar ve her 24 saatte bir IoT Hub bir ileti gönderir.

Cihazlarınızdan çalışma zamanı telemetrisi göndermeyi devre dışı bırakmak istiyorsanız, bunu iki şekilde yapabilirsiniz:

  • SendRuntimeQualityTelemetryfalseSendRuntimeQualityTelemetryiçin ortam değişkenini olarak ayarlayın veya
  • Dağıtım sırasında Azure portal seçeneğinin işaretini kaldırın.

Sonraki adımlar