Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Applies to:
IoT Edge 1.5
Önemli
IoT Edge 1.5 LTS, desteklenen bir sürümdür. IoT Edge 1.4 LTS, 12 Kasım 2024'te kullanım ömrüne ulaştı. Önceki bir sürümü kullanıyorsanız bkz. Update IoT Edge.
Azure IoT Edge modüller diğer Azure hizmetleriyle bağlantı kurabilir ve daha büyük bulut veri işlem hattınıza katkıda bulunabilir. Bu makalede, IoT Edge çalışma zamanı ve IoT Hub ve dolayısıyla Azure bulutun geri kalanıyla iletişim kurmak için modüller nasıl geliştirebileceğiniz açıklanır.
IoT Edge çalışma zamanı ortamı
IoT Edge çalışma zamanı, birden çok IoT Edge modülünün işlevselliğini tümleştirmek ve bunları IoT Edge cihazlara dağıtmak için altyapı sağlar. Herhangi bir program IoT Edge modülü olarak paketlenebilir. IoT Edge iletişim ve yönetim işlevlerinden tam olarak yararlanmak için modülde çalışan bir program, yerel IoT Edge hub'ına bağlanmak için Azure IoT Cihaz SDK'sını kullanabilir.
Programınızı IoT Edge modülü olarak paketleme
Programınızı IoT Edge bir cihaza dağıtmak için önce kapsayıcıya alıp Docker uyumlu bir altyapı kullanarak çalıştırmanız gerekir. IoT Edge Docker ile uyumlu altyapısı olarak Docker'ın arkasındaki açık kaynak proje olan Moby kullanır. Docker ile alışkın olduğunuz parametreleri IoT Edge modüllerinize geçirebilirsiniz. Daha fazla bilgi için bkz. IoT Edge modülleri için kapsayıcı oluşturma seçeneklerini yapılandırma.
IoT Edge hub'ını kullanma
IoT Edge hub iki ana işlevi vardır: IoT Hub için bir proxy ve yerel iletişimler.
Modülden IoT Edge hub'a bağlanma
Bir modülden yerel IoT Edge hub'ına bağlanmak, tüm istemcilerle aynı bağlantı adımlarını içerir. Daha fazla bilgi için bkz. IoT Edge hub'ına bağlanma.
AMQP üzerinden IoT Edge yönlendirmeyi kullanmak için Azure IoT SDK ModuleClient kullanabilirsiniz. modülünüzü cihazda çalışan IoT Edge hub'ına bağlamak için ModuleClient örneği oluşturun; DeviceClient örneklerinin IoT cihazlarını IoT Hub bağlamasına benzer.
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, Java veya Node.js.
IoT Hub temelleri
IoT Hub bir modül örneğini bir cihaza benzer şekilde görür. Bir modül örneği şunları yapabilir:
- Cihazdan buluta iletiler gönderin.
- Kimliğine özel olarak hedeflenen doğrudan yöntemleri alın.
- Cihaz ikizinden ve bu cihazın diğer modül ikizlerinden ayrı ve yalıtılmış bir modül ikizini kullanın.
Şu anda modüller buluttan cihaza iletileri alamıyor veya dosya yükleme özelliğini kullanamıyor.
Modül yazarken IoT Edge hub'ına bağlanabilir ve cihaz uygulamasıyla IoT Hub kullanırken olduğu gibi IoT Hub temel öğelerini kullanabilirsiniz. IoT Edge modülleriyle IoT cihaz uygulamaları arasındaki tek fark, modüllerde cihaz kimliği yerine modül kimliğine başvurmanız gerektiğidir.
Cihazdan buluta iletiler
bir IoT Edge modülü, yerel aracı görevi gören ve iletileri buluta yayan IoT Edge hub'ı aracılığıyla buluta ileti gönderebilir. Bir IoT Edge modülü, cihazdan buluta iletilerin karmaşık işlenmesini sağlamak için diğer modüller veya cihazlar tarafından yerel IoT Edge hub'ına gönderilen iletileri kesebilir ve işleyebilir. IoT Edge modülü daha sonra işlenen verilerle yeni iletiler gönderir. Bu şekilde, yerel işleme işlem hatları oluşturmak için IoT Edge modül zincirleri oluşturabilirsiniz.
Yolları kullanarak cihazdan buluta telemetri iletileri göndermek için:
-
ModuleClientsınıfını kullanın. Her modülün giriş ve çıkış uç noktaları vardır. - Modülünüzün çıkış uç noktasında ileti göndermek için sınıfınızdan
ModuleClientileti gönderme yöntemini kullanın. - Bu çıkış uç noktasını IoT Hub göndermek için cihazınızın
edgeHubmodülünde bir yol ayarlayın.
Yolları kullanarak iletileri işlemek için:
- Başka bir uç noktadan (modül veya cihaz) gelen iletileri modülünüzün giriş uç noktasına göndermek için bir yol ayarlayın.
- Modülünüzün giriş uç noktasında iletileri dinleyin. Her yeni ileti geri geldiğinde, Azure IoT SDK bir geri çağırma işlevi tetikler.
- Bu geri çağırma işlevini kullanarak iletinizi işleyin ve (isteğe bağlı olarak) modül uç noktası kuyruğunuzda yeni iletiler gönderin.
Not
Yol bildirme hakkında daha fazla bilgi için bkz. IoT Edge'da modülleri dağıtmayı ve yolları oluşturmayı öğrenin.
İkizler
Twins IoT Hub tarafından sağlanan temel öğelerden biridir. İkizler meta veriler, yapılandırma ve koşullar gibi durum bilgilerini depolayan JSON belgeleridir. Her modülün veya cihazın kendi ikizi vardır.
-
Azure IoT SDK kullanarak modül ikizini almak için
ModuleClient.getTwinyöntemini çağırın. - Azure IoT SDK kullanarak modül ikizi yaması almak için bir geri çağırma işlevi uygulayın ve bir ikiz yaması her geldiğinde geri çağırma işlevinizin tetiklenebilmesi için
ModuleClient.moduleTwinCallbackyöntemini kullanarak bunu kaydedin.
Doğrudan yöntemleri kabul et
Azure IoT SDK kullanarak doğrudan bir yöntem almak için bir geri çağırma işlevi uygulayın ve ModuleClient.methodCallback yöntemini kullanarak kaydedin; böylece doğrudan bir yöntem her geldiğinde geri çağırma işleviniz tetiklenmiş olur.
Dil ve mimari desteği
IoT Edge gereksinimlerinize uygun bir senaryo oluşturabilmeniz için birden çok işletim sistemini, cihaz mimarisini ve geliştirme dilini destekler. Özel IoT Edge modülleri geliştirme seçeneklerinizi anlamak için bu bölümü kullanın. Geliştirme ve test ortamınızı IoT Edge için hazırlama bölümünden her dil için araç desteği ve gereksinimleri hakkında daha fazla bilgi edinebilirsiniz.
Linux işletim sistemi
Aşağıdaki tablodaki tüm diller için IoT Edge, AMD64 ve çoğu ARM64 Linux kapsayıcısını destekler ve geliştirme sağlar. Ayrıca Debian 11 ARM32 kapsayıcılarını da destekler.
| Geliştirme dili | Geliştirme araçları |
|---|---|
| C | Visual Studio Code Visual Studio 2019/2022 |
| C# (programlama dili) | Visual Studio Code Visual Studio 2019/2022 |
| Java | Visual Studio Code |
| Node.js | Visual Studio Code |
| Python | Visual Studio Code |
Not
AMD64 geliştirme makinesinde ARM32 IoT Edge modülü derleme gibi platformlar arası derleme için geliştirme makinesini IoT Edge modülüyle eşleşen hedef cihaz mimarisinde kod derlenecek şekilde yapılandırmanız gerekir. Hedef cihaz mimarileri hakkında daha fazla bilgi için bkz. Tutorial: Visual Studio Code kullanarak Azure IoT Edge modülleri geliştirme.
Windows
Microsoft artık Windows kapsayıcılarını desteklememektedir. Windows üzerinde Linux için IoT Edge, IoT Edge'i Windows cihazlarda çalıştırmanın önerilen yoludur.
Modül güvenliği
Modüllerinizi güvenlik göz önünde bulundurarak geliştirin. Modüllerinizin güvenliğini sağlama hakkında daha fazla bilgi edinmek için bkz. Docker Altyapısı güvenliği.
Modül güvenliğini iyileştirmeye yardımcı olmak için IoT Edge bazı kapsayıcı özelliklerini varsayılan olarak devre dışı bırakır. Gerekirse modüllerinize ayrıcalıklı özellikler sağlamak için varsayılanları geçersiz kılabilirsiniz.
Yükseltilmiş Docker izinlerine izin ver
IoT Edge bir cihazdaki yapılandırma dosyasında, allow_elevated_docker_permissions adlı bir parametre yükseltilmiş Docker izinlerini denetler.
True olarak ayarlandığında, bu bayrak --privileged bayrağını ve kapsayıcı oluşturma seçeneklerinde Docker HostConfig alanında tanımladığınız diğer tüm özellikleri sağlar.
Not
Şu anda bu bayrak, dağıtımlara ayrıcalıklı izinler veren varsayılan olarak true'dur . Cihaz güvenliğini geliştirmek için bu bayrağı false olarak ayarlayın.
CAP_CHOWN ve CAP_SETUID'i etkinleştir
Docker özellikleri CAP_CHOWN ve CAP_SETUID varsayılan olarak devre dışıdır. Bu özellikler, konak cihazdaki güvenli dosyalara yazabilir ve potansiyel olarak kök erişimi elde edebilir.
Bu özelliklere ihtiyacınız varsa kapsayıcı oluşturma seçeneklerini kullanarak CapADD bunları el ile yeniden etkinleştirin.
Sonraki adımlar
geliştirme ve test ortamınızı IoT Edge Tutorial: Visual Studio Code - Visual Studio Code kullanarak Azure IoT Edge modüllerini hata ayıkla
- Azure IoT Hub SDK