Hiyerarşi oluşturmak için Azure IoT Edge cihazlarını bağlama
Şunlar için geçerlidir: IoT Edge 1.5 IoT Edge 1.4
Önemli
IoT Edge 1.5 LTS ve IoT Edge 1.4 LTS desteklenen sürümlerdir. IoT Edge 1.4 LTS, 12 Kasım 2024'te kullanım ömrü sona erer. Önceki bir sürümdeyseniz bkz. IoT Edge’i güncelleştirme.
Bu makalede IoT Edge ağ geçidi ile aşağı akış IoT Edge cihazı arasında güvenilir bağlantı kurma adımları sağlanır. Bu yapılandırma iç içe kenar olarak da bilinir.
Bir ağ geçidi senaryosunda IoT Edge cihazı hem ağ geçidi hem de aşağı akış cihazı olabilir. Cihaz hiyerarşisi oluşturmak için birden çok IoT Edge ağ geçidi katmanlanabilir. Aşağı akış (alt) cihazlar, ağ geçidi (üst) cihazları aracılığıyla kimlik doğrulaması yapabilir ve ileti gönderebilir veya alabilir.
Bir ağ geçidi hiyerarşisinde IoT Edge cihazları için iki farklı yapılandırma vardır ve bu makale her ikisini de ele alır. Birincisi en üst katman IoT Edge cihazıdır. Birden çok IoT Edge cihazı birbirine bağlandığında, üst cihazı olmayan ancak doğrudan IoT Hub'a bağlanan tüm cihazlar en üst katmanda kabul edilir. Bu cihaz, altındaki tüm cihazlardan gelen istekleri işlemekten sorumludur. Diğer yapılandırma, hiyerarşinin alt katmanındaki tüm IoT Edge cihazları için geçerlidir. Bu cihazlar diğer aşağı akış IoT ve IoT Edge cihazları için bir ağ geçidi olabilir, ancak aynı zamanda tüm iletişimleri kendi üst cihazları üzerinden yönlendirmesi gerekir.
Bazı ağ mimarileri, yalnızca bir hiyerarşideki en üst IoT Edge cihazının buluta bağlanabilmesini gerektirir. Bu yapılandırmada, hiyerarşinin alt katmanlarında yer alan tüm IoT Edge cihazları yalnızca ağ geçidi (üst) cihazları ve aşağı akış (alt) cihazlarıyla iletişim kurabilir.
Bu makaledeki tüm adımlar, IoT Edge cihazını aşağı akış IoT cihazları için bir ağ geçidi olacak şekilde ayarlayan saydam bir ağ geçidi olarak davranacak şekilde yapılandırma konusunda derlenmektedir. Tüm ağ geçidi senaryolarında aynı temel adımlar geçerlidir:
- Kimlik doğrulaması: Ağ geçidi hiyerarşisindeki tüm cihazlar için IoT Hub kimlikleri oluşturun.
- Yetkilendirme: Aşağı akış cihazlarını IoT Hub'a bağlanacakları gibi üst cihazlara bağlanma yetkisi vermek için IoT Hub'da üst/alt ilişkiyi ayarlayın.
- Ağ geçidi bulma: Aşağı akış cihazının ana cihazını yerel ağda bulabildiğinden emin olun.
- Güvenli bağlantı: Aynı zincirin parçası olan güvenilen sertifikalarla güvenli bir bağlantı kurun.
Önkoşullar
- Ücretsiz veya standart bir IoT hub'ı.
- En az iki IoT Edge cihazı, biri en üst katman cihaz ve bir veya daha fazla alt katman cihazı olmak üzere. Kullanılabilir IoT Edge cihazlarınız yoksa Azure IoT Edge'i Ubuntu sanal makinelerinde çalıştırabilirsiniz.
- Cihazları oluşturmak ve yönetmek için Azure CLI kullanıyorsanız Azure IoT uzantısını yükleyin.
İpucu
Bu makalede, senaryonuz için doğru ağ geçidi hiyerarşisini oluşturmanıza yardımcı olacak ayrıntılı adımlar ve seçenekler sağlanır. Kılavuzlu bir öğretici için bkz . Ağ geçitlerini kullanarak IoT Edge cihazları hiyerarşisi oluşturma.
Ağ geçidi hiyerarşisi oluşturma
Senaryoda IoT Edge cihazları için üst/alt ilişkileri tanımlayarak bir IoT Edge ağ geçidi hiyerarşisi oluşturursunuz. Yeni bir cihaz kimliği oluşturduğunuzda bir üst cihaz ayarlayabilir veya mevcut bir cihaz kimliğinin üst ve alt öğelerini yönetebilirsiniz.
Üst/alt ilişkileri ayarlama adımı, aşağı akış cihazlarını IoT Hub'a bağlanacakları gibi üst cihazlarına bağlanma yetkisi verir.
Yalnızca IoT Edge cihazları üst cihaz olabilir, ancak hem IoT Edge cihazları hem de IoT cihazları alt öğe olabilir. Bir ebeveynin çok sayıda çocuğu olabilir, ancak bir çocuğun yalnızca bir ebeveyni olabilir. Bir ağ geçidi hiyerarşisi, bir cihazın alt öğesinin başka bir cihazın üst öğesi olması için üst/alt kümeler birbirine zincirlenerek oluşturulur.
Varsayılan olarak, bir üst öğenin en fazla 100 alt öğesi olabilir. Üst cihazın edgeHub modülünde MaxConnectedClients ortam değişkenini ayarlayarak bu sınırı değiştirebilirsiniz.
Azure portalında, yeni cihaz kimlikleri oluşturduğunuzda veya mevcut cihazları düzenleyerek üst/alt ilişkiyi yönetebilirsiniz.
Yeni bir IoT Edge cihazı oluşturduğunuzda, söz konusu hub'daki mevcut IoT Edge cihazları listesinden üst ve alt cihazları seçme seçeneğiniz vardır.
- Azure portalında IoT hub'ınıza gidin.
- Cihaz yönetimi menüsünün altında Cihazlar'ı seçin.
- Cihaz ekle'yi seçin, ardından IoT Edge Cihazı onay kutusunu işaretleyin.
- Cihaz kimliği ve kimlik doğrulama ayarlarının yanı sıra, Bir üst cihaz ayarlayabilir veya Alt cihazları seçebilirsiniz.
- Ebeveyn veya alt öğe olarak kullanmak istediğiniz cihazı veya cihazları seçin.
Ayrıca, mevcut cihazlar için üst/alt ilişki oluşturabilir veya yönetebilirsiniz.
- Azure portalında IoT hub'ınıza gidin.
- Cihaz yönetimi menüsünde Cihazlar'ı seçin.
- Listeden yönetmek istediğiniz IoT Edge cihazını seçin.
- Üst cihaz dişlisi ayarla simgesini veya Alt cihazları yönet'i seçin.
- Üst veya alt cihazları ekleyin veya kaldırın.
Not
Üst-alt öğe ilişkilerini program aracılığıyla oluşturmak istiyorsanız C#, Java veya Node.js IoT Hub Hizmeti SDK'sını kullanabilirsiniz.
Aşağıda, C# SDK'sını kullanarak alt cihaz atama örneği verilmiştir. Görev RegistryManager_AddAndRemoveDeviceWithScope()
, program aracılığıyla üç katmanlı hiyerarşinin nasıl oluşturulacağını gösterir. IoT Edge cihazı, üst katman olarak birinci katmandadır. Bir diğer IoT Edge cihazı, hem alt hem de üst öğe olarak hizmet veren ikinci katmandır. Son olarak, bir IoT cihazı en düşük katman alt cihaz olarak üçüncü katmandadır.
İstemci sertifikaları oluşturma
Kendi aralarında güvenli bir iletişim kurmak için tutarlı bir sertifika zincirinin aynı ağ geçidi hiyerarşisindeki cihazlara yüklenmesi gerekir. İster IoT Edge cihazı ister IoT aşağı akış cihazı olsun, hiyerarşideki her cihaz aynı kök CA sertifikasının bir kopyasına ihtiyaç duyar. Ardından hiyerarşideki her IoT Edge cihazı, Edge CA sertifikasının kökü olarak bu kök CA sertifikasını kullanır.
Bu kurulumla, her aşağı akış IoT Edge cihazı, bağlandıkları edgeHub'ın paylaşılan kök CA sertifikası tarafından imzalanan bir sunucu sertifikasına sahip olduğunu doğrulayarak üstlerinin kimliğini doğrulayabilir.
IoT Edge sertifika gereksinimleri hakkında daha fazla bilgi için bkz . Azure IoT Edge'in sertifikaları nasıl kullandığını anlama.
Aşağıdaki sertifikaları oluşturun veya isteyin:
- Belirli bir ağ geçidi hiyerarşisindeki tüm cihazlar için en üstteki paylaşılan sertifika olan kök CA sertifikası. Bu sertifika tüm cihazlara yüklenir.
- Kök sertifika zincirine eklemek istediğiniz tüm ara sertifikalar .
- Kök ve ara sertifikalar tarafından oluşturulan bir Edge CA sertifikası ve özel anahtarı. Ağ geçidi hiyerarşisindeki her IoT Edge cihazı için benzersiz bir Edge CA sertifikasına ihtiyacınız vardır.
Otomatik olarak imzalanan bir sertifika yetkilisi kullanabilir veya Baltimore, Verisign, Digicert veya GlobalSign gibi güvenilir bir ticari sertifika yetkilisinden bir sertifika satın alabilirsiniz.
Test için kullanılacak kendi sertifikalarınız yoksa, bir kök ve ara sertifika kümesi oluşturun, ardından her cihaz için Edge CA sertifikaları oluşturun. Bu makalede, örnekler ve öğreticiler için test CA sertifikaları kullanılarak oluşturulan test sertifikalarını kullanacağız. Örneğin, aşağıdaki komutlar bir kök CA sertifikası, bir üst cihaz sertifikası ve bir alt cihaz sertifikası oluşturur.
# !!! For test only - do not use in production !!! # Create the the root CA test certificate ./certGen.sh create_root_and_intermediate # Create the parent (gateway) device test certificate # signed by the shared root CA certificate ./certGen.sh create_edge_device_ca_certificate "gateway" # Create the downstream device test certificate # signed by the shared root CA certificate ./certGen.sh create_edge_device_ca_certificate "downstream"
Uyarı
Üretim için test betikleri tarafından oluşturulan sertifikaları kullanmayın. Bunlar sabit kodlanmış parolalar içerir ve varsayılan olarak 30 gün sonra süresi dolar. Ca Sertifikalarını anlamanıza yardımcı olmak için test CA sertifikaları tanıtım amacıyla sağlanır. Üretimde sertifikasyon oluşturma ve yaşam süresi yönetimi için kendi güvenlik en iyi yöntemlerinizi kullanın.
Test sertifikaları oluşturma hakkında daha fazla bilgi için bkz . IoT Edge cihaz özelliklerini test etmek için tanıtım sertifikaları oluşturma.
Sertifikaları ve anahtarları her cihaza aktarmanız gerekir. USB sürücüsü, Azure Key Vault gibi bir hizmet veya Güvenli dosya kopyası gibi bir işlev kullanabilirsiniz. Senaryonuza en uygun yöntemlerden birini seçin. Dosyaları sertifikalar ve anahtarlar için tercih edilen dizine kopyalayın. Sertifikalar ve
/var/aziot/secrets
anahtarlar için kullanın/var/aziot/certs
.
Bir cihaza sertifika yükleme hakkında daha fazla bilgi için bkz . IoT Edge cihazında sertifikaları yönetme.
Üst cihazı yapılandırma
Üst cihazınızı yapılandırmak için yerel veya uzak bir komut kabuğu açın.
Güvenli bağlantıları etkinleştirmek için, bir ağ geçidi senaryosundaki her IoT Edge üst cihazının benzersiz bir Edge CA sertifikası ve ağ geçidi hiyerarşisindeki tüm cihazlar tarafından paylaşılan kök CA sertifikasının bir kopyasıyla yapılandırılması gerekir.
Sertifikalarınızın biçim gereksinimlerini karşıladığından denetleyin.
Kök CA sertifikasını, üst Edge CA sertifikasını ve üst özel anahtarı üst cihaza aktarın.
Sertifikaları ve anahtarları doğru dizinlere kopyalayın. Cihaz sertifikaları için tercih edilen dizinler sertifikalar
/var/aziot/certs
ve/var/aziot/secrets
anahtarlar içindir.### Copy device certificate ### # If the device certificate and keys directories don't exist, create, set ownership, and set permissions sudo mkdir -p /var/aziot/certs sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs sudo mkdir -p /var/aziot/secrets sudo chown aziotks:aziotks /var/aziot/secrets sudo chmod 700 /var/aziot/secrets # Copy full-chain device certificate and private key into the correct directory sudo cp iot-edge-device-ca-gateway-full-chain.cert.pem /var/aziot/certs sudo cp iot-edge-device-ca-gateway.key.pem /var/aziot/secrets ### Root certificate ### # Copy root certificate into the /certs directory sudo cp azure-iot-test-only.root.ca.cert.pem /var/aziot/certs # Copy root certificate into the CA certificate directory and add .crt extension. # The root certificate must be in the CA certificate directory to install it in the certificate store. # Use the appropriate copy command for your device OS or if using EFLOW. # For Ubuntu and Debian, use /usr/local/share/ca-certificates/ sudo cp azure-iot-test-only.root.ca.cert.pem /usr/local/share/azure-iot-test-only.root.ca.cert.pem.crt # For EFLOW, use /etc/pki/ca-trust/source/anchors/ sudo cp azure-iot-test-only.root.ca.cert.pem /etc/pki/ca-trust/source/anchors/azure-iot-test-only.root.ca.pem.crt
Sertifikaların ve anahtarların sahipliğini ve izinlerini değiştirin.
# Give aziotcs ownership to certificates # Read and write for aziotcs, read-only for others sudo chown -R aziotcs:aziotcs /var/aziot/certs sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \; # Give aziotks ownership to private keys # Read and write for aziotks, no permission for others sudo chown -R aziotks:aziotks /var/aziot/secrets sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \; # Verify permissions of directories and files sudo ls -Rla /var/aziot
Doğru sahiplik ve izin içeren listenin çıkışı aşağıdakine benzer:
azureUser@vm:/var/aziot$ sudo ls -Rla /var/aziot /var/aziot: total 16 drwxr-xr-x 4 root root 4096 Dec 14 00:16 . drwxr-xr-x 15 root root 4096 Dec 14 00:15 .. drwxr-xr-x 2 aziotcs aziotcs 4096 Jan 14 00:31 certs drwx------ 2 aziotks aziotks 4096 Jan 23 17:23 secrets /var/aziot/certs: total 20 drwxr-xr-x 2 aziotcs aziotcs 4096 Jan 14 00:31 . drwxr-xr-x 4 root root 4096 Dec 14 00:16 .. -rw-r--r-- 1 aziotcs aziotcs 1984 Jan 14 00:24 azure-iot-test-only.root.ca.cert.pem -rw-r--r-- 1 aziotcs aziotcs 5887 Jan 14 00:27 iot-edge-device-ca-gateway-full-chain.cert.pem /var/aziot/secrets: total 16 drwx------ 2 aziotks aziotks 4096 Jan 23 17:23 . drwxr-xr-x 4 root root 4096 Dec 14 00:16 .. -rw------- 1 aziotks aziotks 3243 Jan 14 00:28 iot-edge-device-ca-gateway.key.pem
Platforma özgü komutunu kullanarak cihazdaki sertifika deposunu güncelleştirerek kök CA sertifikasını üst IoT Edge cihazına yükleyin.
# Update the certificate store # For Ubuntu or Debian - use update-ca-certificates sudo update-ca-certificates # For EFLOW or RHEL - use update-ca-trust sudo update-ca-trust
EFLOW'da kullanma
update-ca-trust
hakkında daha fazla bilgi için bkz . CBL-Mariner SSL CA sertifika yönetimi.
Komutu, öğesine /etc/ssl/certs
bir sertifika eklendiğini bildirir.
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Üst yapılandırma dosyasını güncelleştirme
Cihazınızda IoT Edge zaten yüklü olmalıdır. Aksi takdirde, tek bir Linux IoT Edge cihazını el ile sağlama adımlarını izleyin.
Yapılandırma dosyasının
/etc/aziot/config.toml
üst cihazda mevcut olduğunu doğrulayın.Yapılandırma dosyası cihazınızda yoksa, şablon dosyasını temel alarak oluşturmak için aşağıdaki komutu kullanın:
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
Bu bölümde yapılandırma parametreleri eklemek için şablon dosyasını başvuru olarak da kullanabilirsiniz.
Düzenleyici kullanarak IoT Edge yapılandırma dosyasını açın. Örneğin, dosyayı açmak için düzenleyiciyi
/etc/aziot/config.toml
kullanınnano
.sudo nano /etc/aziot/config.toml
hostname parametresini bulun veya yapılandırma dosyasının başına ekleyin. Değeri, IoT Edge üst cihazının tam etki alanı adı (FQDN) veya IP adresi olacak şekilde güncelleştirin. Örneğin:
hostname = "10.0.0.4"
Ağ geçidi bulmayı etkinleştirmek için her IoT Edge ağ geçidi (üst) cihazının alt cihazlarının yerel ağda bulmak için kullanacağı bir konak adı parametresi belirtmesi gerekir. Her aşağı akış IoT Edge cihazının üst öğesini tanımlamak için bir parent_hostname parametresi belirtmesi gerekir. Tek bir IoT Edge cihazının hem üst hem de alt cihaz olduğu hiyerarşik bir senaryoda her iki parametreye de ihtiyacı vardır.
Konak adı ve trust_bundle_cert parametreleri, herhangi bir bölümden önce yapılandırma dosyasının başında olmalıdır. Parametreyi tanımlı bölümlerden önce eklemek, doğru uygulandığından emin olur.
Sunucu sertifikası ortak adı için karakter sınırı olan 64 karakterden kısa bir konak adı kullanın.
Ağ geçidi hiyerarşisi genelinde konak adı deseniyle tutarlı olun. FQDN'leri veya IP adreslerini kullanın, ancak ikisini birden kullanmayın. Aşağı akış cihazlarını bağlamak için FQDN veya IP adresi gereklidir.
edgeHub kapsayıcısı oluşturulmadan önce konak adını ayarlayın. edgeHub çalışıyorsa, yapılandırma dosyasındaki ana bilgisayar adı değiştirildiğinde kapsayıcı yeniden başlatılana kadar geçerli olmaz. Konak adının uygulandığını doğrulama hakkında daha fazla bilgi için üst yapılandırmayı doğrulama bölümüne bakın.
Trust bundle cert parametresini bulun veya yapılandırma dosyasının başına ekleyin.
parametresini
trust_bundle_cert
dosya URI'siyle cihazınızdaki kök CA sertifikasına güncelleştirin. Örneğin:trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem"
Yapılandırma dosyasında Edge CA sertifikası bölümünü bulun veya ekleyin. Sertifikayı
cert
ve özel anahtarpk
parametrelerini, üst IoT Edge cihazındaki tam zincir sertifikası ve anahtar dosyaları için dosya URI yolları ile güncelleştirin. IoT Edge, sertifikanın ve özel anahtarın metin tabanlı gizlilik açısından geliştirilmiş posta (PEM) biçiminde olmasını gerektirir. Örneğin:[edge_ca] cert = "file:///var/aziot/certs/iot-edge-device-ca-gateway-full-chain.cert.pem" pk = "file:///var/aziot/secrets/iot-edge-device-ca-gateway.key.pem"
IoT Edge cihazınızın başlatıldığında IoT Edge aracısının doğru sürümünü kullandığını doğrulayın. Varsayılan Edge Aracısı bölümünü bulun ve IoT Edge için görüntü değerini 1.5 sürümüne ayarlayın. Örneğin:
[agent] name = "edgeAgent" type = "docker" [agent.config] image = "mcr.microsoft.com/azureiotedge-agent:1.5"
Üst yapılandırma dosyanızın başlangıcı aşağıdaki örneğe benzer olmalıdır.
hostname = "10.0.0.4" trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem" [edge_ca] cert = "file:///var/aziot/certs/iot-edge-device-ca-gateway-full-chain.cert.pem" pk = "file:///var/aziot/secrets/iot-edge-device-ca-gateway.key.pem"
Yapılandırma dosyasını kaydedin ve kapatın
config.toml
. Örneğin nano düzenleyiciyi kullanıyorsanız Ctrl+O - Yazma, Enter ve Ctrl+X - Çıkış'ı seçin.Daha önce IoT Edge için başka sertifikalar kullandıysanız, yeni sertifikalarınızın uygulandığından emin olmak için aşağıdaki iki dizindeki dosyaları silin:
/var/lib/aziot/certd/certs
/var/lib/aziot/keyd/keys
Değişikliklerinizi uygulayın.
sudo iotedge config apply
Yapılandırmadaki hataları denetleyin.
sudo iotedge check --verbose
Not
Yeni sağlanan bir cihazda IoT Edge Hub ile ilgili bir hata görebilirsiniz:
üretime hazır olma ×: Edge Hub'ın depolama dizini konak dosya sisteminde kalıcı hale geldi - Hata
EdgeHub kapsayıcısının geçerli durumu denetlenemedi
IoT Edge Hub modülü çalışmadığından yeni sağlanan bir cihazda bu hata beklenir. Hatayı çözmek için IoT Hub'da cihazın modüllerini ayarlayın ve bir dağıtım oluşturun. Cihaz için dağıtım oluşturma, IoT Edge Hub modülü dahil olmak üzere cihazdaki modülleri başlatır.
Üst yapılandırmayı doğrulama
Aşağı akış cihazları bağlandığında IoT Edge sunucu sertifikasında bu değeri kullandığından, ana bilgisayar adı nitelenmiş bir etki alanı adı (FQDN) veya IoT Edge cihazının IP adresi olmalıdır. Değerler eşleşmelidir, aksi zaman IP adresi uyuşmazlığı hatası alırsınız.
Konak adını doğrulamak için edgeHub kapsayıcısının ortam değişkenlerini incelemeniz gerekir.
Çalışan IoT Edge kapsayıcılarını listeleyin.
iotedge list
edgeAgent ve edgeHub kapsayıcılarının çalıştığını doğrulayın. Komut çıktısı aşağıdaki örneğe benzer olmalıdır.
NAME STATUS DESCRIPTION CONFIG SimulatedTemperatureSensor running Up 5 seconds mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0 edgeAgent running Up 17 seconds mcr.microsoft.com/azureiotedge-agent:1.5 edgeHub running Up 6 seconds mcr.microsoft.com/azureiotedge-hub:1.5
edgeHub kapsayıcısını inceleyin.
sudo docker inspect edgeHub
Çıktıda Env bölümünde EdgeDeviceHostName parametresini bulun.
"EdgeDeviceHostName=10.0.0.4"
EdgeDeviceHostName parametre değerinin konak adı ayarıyla eşleştiklerini
config.toml
doğrulayın. Eşleşmiyorsa, yapılandırmayı değiştirip uyguladığınızda edgeHub kapsayıcısı çalışıyordu. EdgeDeviceHostName'i güncelleştirmek için edgeAgent kapsayıcısını kaldırın.sudo docker rm -f edgeAgent
edgeAgent ve edgeHub kapsayıcıları birkaç dakika içinde yeniden oluşturulur ve başlatılır. EdgeHub kapsayıcısı çalıştırıldıktan sonra kapsayıcıyı inceleyin ve EdgeDeviceHostName parametresinin yapılandırma dosyasıyla eşleşip eşleşmediğini doğrulayın.
Aşağı akış cihazını yapılandırma
Aşağı akış cihazınızı yapılandırmak için bir yerel veya uzak komut kabuğu açın.
Güvenli bağlantıları etkinleştirmek için, bir ağ geçidi senaryosundaki her IoT Edge aşağı akış cihazının benzersiz bir Edge CA sertifikası ve ağ geçidi hiyerarşisindeki tüm cihazlar tarafından paylaşılan kök CA sertifikasının bir kopyasıyla yapılandırılması gerekir.
Sertifikalarınızın biçim gereksinimlerini karşıladığından denetleyin.
Kök CA sertifikasını, alt Edge CA sertifikasını ve alt özel anahtarı aşağı akış cihazına aktarın.
Sertifikaları ve anahtarları doğru dizinlere kopyalayın. Cihaz sertifikaları için tercih edilen dizinler sertifikalar
/var/aziot/certs
ve/var/aziot/secrets
anahtarlar içindir.### Copy device certificate ### # If the device certificate and keys directories don't exist, create, set ownership, and set permissions sudo mkdir -p /var/aziot/certs sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs sudo mkdir -p /var/aziot/secrets sudo chown aziotks:aziotks /var/aziot/secrets sudo chmod 700 /var/aziot/secrets # Copy device full-chain certificate and private key into the correct directory sudo cp iot-device-downstream-full-chain.cert.pem /var/aziot/certs sudo cp iot-device-downstream.key.pem /var/aziot/secrets ### Root certificate ### # Copy root certificate into the /certs directory sudo cp azure-iot-test-only.root.ca.cert.pem /var/aziot/certs # Copy root certificate into the CA certificate directory and add .crt extension. # The root certificate must be in the CA certificate directory to install it in the certificate store. # Use the appropriate copy command for your device OS or if using EFLOW. # For Ubuntu and Debian, use /usr/local/share/ca-certificates/ sudo cp azure-iot-test-only.root.ca.cert.pem /usr/local/share/azure-iot-test-only.root.ca.cert.pem.crt # For EFLOW, use /etc/pki/ca-trust/source/anchors/ sudo cp azure-iot-test-only.root.ca.cert.pem /etc/pki/ca-trust/source/anchors/azure-iot-test-only.root.ca.pem.crt
Sertifikaların ve anahtarların sahipliğini ve izinlerini değiştirin.
# Give aziotcs ownership to certificates # Read and write for aziotcs, read-only for others sudo chown -R aziotcs:aziotcs /var/aziot/certs sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \; # Give aziotks ownership to private keys # Read and write for aziotks, no permission for others sudo chown -R aziotks:aziotks /var/aziot/secrets sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
Platforma özgü komutu kullanarak cihazdaki sertifika deposunu güncelleştirerek aşağı akış IoT Edge cihazına kök CA sertifikasını yükleyin.
# Update the certificate store # For Ubuntu or Debian - use update-ca-certificates sudo update-ca-certificates # For EFLOW or RHEL - use update-ca-trust sudo update-ca-trust
EFLOW'da kullanma
update-ca-trust
hakkında daha fazla bilgi için bkz . CBL-Mariner SSL CA sertifika yönetimi.
Komutu, öğesine /etc/ssl/certs
bir sertifika eklendiğini bildirir.
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Aşağı akış yapılandırma dosyasını güncelleştirme
Cihazınızda IoT Edge zaten yüklü olmalıdır. Aksi takdirde, tek bir Linux IoT Edge cihazını el ile sağlama adımlarını izleyin.
/etc/aziot/config.toml
Aşağı akış cihazında yapılandırma dosyasının mevcut olduğunu doğrulayın.Yapılandırma dosyası cihazınızda yoksa, şablon dosyasını temel alarak oluşturmak için aşağıdaki komutu kullanın:
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
Bu bölümde yapılandırma parametreleri eklemek için şablon dosyasını başvuru olarak da kullanabilirsiniz.
Düzenleyici kullanarak IoT Edge yapılandırma dosyasını açın. Örneğin, dosyayı açmak için düzenleyiciyi
/etc/aziot/config.toml
kullanınnano
.sudo nano /etc/aziot/config.toml
parent_hostname parametresini bulun veya yapılandırma dosyasının başına ekleyin Her aşağı akış IoT Edge cihazının üst öğesini tanımlamak için bir parent_hostname parametresi belirtmesi gerekir. Parametresini
parent_hostname
üst cihazın FQDN veya IP adresi olacak şekilde güncelleştirin ve üst cihazın yapılandırma dosyasında ana bilgisayar adı olarak sağlanan adla eşleşin. Örneğin:parent_hostname = "10.0.0.4"
Trust bundle cert parametresini bulun veya yapılandırma dosyasının başına ekleyin.
parametresini
trust_bundle_cert
dosya URI'siyle cihazınızdaki kök CA sertifikasına güncelleştirin. Örneğin:trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem"
Yapılandırma dosyasında Edge CA sertifikası bölümünü bulun veya ekleyin. Sertifikayı
cert
ve özel anahtarpk
parametrelerini IoT Edge aşağı akış cihazındaki tam zincir sertifikası ve anahtar dosyaları için dosya URI yolları ile güncelleştirin. IoT Edge, sertifikanın ve özel anahtarın metin tabanlı gizlilik açısından geliştirilmiş posta (PEM) biçiminde olmasını gerektirir. Örneğin:[edge_ca] cert = "file:///var/aziot/certs/iot-device-downstream-full-chain.cert.pem" pk = "file:///var/aziot/secrets/iot-device-downstream.key.pem"
IoT Edge cihazınızın başlatıldığında IoT Edge aracısının doğru sürümünü kullandığını doğrulayın. Varsayılan Edge Aracısı bölümünü bulun ve IoT Edge için görüntü değerini 1.5 sürümüne ayarlayın. Örneğin:
[agent] name = "edgeAgent" type = "docker" [agent.config] image: "mcr.microsoft.com/azureiotedge-agent:1.5"
Aşağı akış yapılandırma dosyanızın başlangıcı aşağıdaki örneğe benzer olmalıdır.
parent_hostname = "10.0.0.4" trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem" [edge_ca] cert = "file:///var/aziot/certs/iot-device-downstream-full-chain.cert.pem" pk = "file:///var/aziot/secrets/iot-device-downstream.key.pem"
Yapılandırma dosyasını kaydedin ve kapatın
config.toml
. Örneğin nano düzenleyiciyi kullanıyorsanız Ctrl+O - Yazma, Enter ve Ctrl+X - Çıkış'ı seçin.Daha önce IoT Edge için başka sertifikalar kullandıysanız, yeni sertifikalarınızın uygulandığından emin olmak için aşağıdaki iki dizindeki dosyaları silin:
/var/lib/aziot/certd/certs
/var/lib/aziot/keyd/keys
Değişikliklerinizi uygulayın.
sudo iotedge config apply
Yapılandırmadaki hataları denetleyin.
sudo iotedge check --verbose
İpucu
IoT Edge denetim aracı, tanılama denetiminin bir bölümünü gerçekleştirmek için bir kapsayıcı kullanır. Bu aracı aşağı akış IoT Edge cihazlarında kullanmak istiyorsanız, öğesine erişebildiklerinden
mcr.microsoft.com/azureiotedge-diagnostics:latest
veya kapsayıcı görüntüsünün özel kapsayıcı kayıt defterinizde olduğundan emin olun.Not
Yeni sağlanan bir cihazda IoT Edge Hub ile ilgili bir hata görebilirsiniz:
üretime hazır olma ×: Edge Hub'ın depolama dizini konak dosya sisteminde kalıcı hale geldi - Hata
EdgeHub kapsayıcısının geçerli durumu denetlenemedi
IoT Edge Hub modülü çalışmadığından yeni sağlanan bir cihazda bu hata beklenir. Hatayı çözmek için IoT Hub'da cihazın modüllerini ayarlayın ve bir dağıtım oluşturun. Cihaz için dağıtım oluşturma, IoT Edge Hub modülü dahil olmak üzere cihazdaki modülleri başlatır.
Aşağı akış cihazlarını ağdan yalıtma
Bu makaledeki şu ana kadarki adımlar IoT Edge cihazlarını ağ geçidi veya aşağı akış cihazı olarak ayarlar ve aralarında güvenilir bir bağlantı oluşturur. Ağ geçidi cihazı, kimlik doğrulaması ve ileti yönlendirme dahil olmak üzere aşağı akış cihazı ile IoT Hub arasındaki etkileşimleri işler. Aşağı akış IoT Edge cihazlarına dağıtılan modüller, bulut hizmetlerine kendi bağlantılarını oluşturmaya devam edebilir.
ISA-95 standardına uyanlar gibi bazı ağ mimarileri, İnternet bağlantısı sayısını en aza indirmeye çalışır. Bu senaryolarda, aşağı akış IoT Edge cihazlarını doğrudan İnternet bağlantısı olmadan yapılandırabilirsiniz. IoT Hub iletişimlerini ağ geçidi cihazları aracılığıyla yönlendirmenin ötesinde, aşağı akış IoT Edge cihazları tüm bulut bağlantıları için ağ geçidi cihazına güvenebilir.
Bu ağ yapılandırması, yalnızca ağ geçidi hiyerarşisinin en üst katmanındaki IoT Edge cihazının buluta doğrudan bağlantıları olmasını gerektirir. Alt katmanlardaki IoT Edge cihazları yalnızca üst cihazlarıyla veya alt cihazlarla iletişim kurabilir. Ağ geçidi cihazlarında özel modüller aşağıdakiler dahil olmak üzere bu senaryoyu etkinleştirir:
API proxy modülü, altında başka bir IoT Edge cihazı bulunan tüm IoT Edge ağ geçitlerinde gereklidir. Bu, alt katman dışında bir ağ geçidi hiyerarşisinin her katmanında olması gerektiği anlamına gelir. Bu modül, HTTP verilerini tek bir bağlantı noktası üzerinden ağ katmanları üzerinden yönlendirmek için bir nginx ters proxy kullanır. Modül ikizi ve ortam değişkenleri aracılığıyla yüksek oranda yapılandırılabilir, bu nedenle ağ geçidi senaryo gereksinimlerinize uyacak şekilde ayarlanabilir.
Docker kayıt defteri modülü, bir ağ geçidi hiyerarşisinin en üst katmanındaki IoT Edge ağ geçidinde dağıtılabilir. Bu modül, kapsayıcı görüntülerini alt katmanlardaki tüm IoT Edge cihazları adına almak ve önbelleğe almakla sorumludur. Bu modülü en üst katmanda dağıtmanın alternatifi yerel bir kayıt defteri kullanmak veya kapsayıcı görüntülerini cihazlara el ile yüklemek ve modül çekme ilkesini hiçbir zaman olarak ayarlamaktır.
IoT Edge'deki Azure Blob Depolama, bir ağ geçidi hiyerarşisinin en üst katmanındaki IoT Edge ağ geçidinde dağıtılabilir. Bu modül, alt katmanlardaki tüm IoT Edge cihazları adına blobları karşıya yüklemekten sorumludur. Blobları karşıya yükleyebilme özelliği, modül günlüğü yükleme ve paket karşıya yükleme desteği gibi alt katmanlardaki IoT Edge cihazları için yararlı sorun giderme işlevlerine de olanak tanır.
Ağ yapılandırması
Üst katmandaki her ağ geçidi cihazı için ağ işleçlerinin şunları yapmanız gerekir:
Statik bir IP adresi veya tam etki alanı adı (FQDN) sağlayın.
443 (HTTPS) ve 5671 (AMQP) bağlantı noktaları üzerinden bu IP adresinden Azure IoT Hub ana bilgisayar adınız ile giden iletişimleri yetkilendirilin.
Bu IP adresinden 443 numaralı bağlantı noktası (HTTPS) üzerinden Azure Container Registry ana bilgisayar adınız ile giden iletişimleri yetkileyin.
API proxy modülü aynı anda yalnızca bir kapsayıcı kayıt defterine bağlantıları işleyebilir. Microsoft Container Registry (mcr.microsoft.com) tarafından sağlanan genel görüntüler de dahil olmak üzere tüm kapsayıcı görüntülerinin özel kapsayıcı kayıt defterinizde depolanmasını öneririz.
Alt katmandaki her ağ geçidi cihazı için ağ işleçlerinin şunları yapmanız gerekir:
- Statik bir IP adresi sağlayın.
- Bu IP adresinden 443 (HTTPS) ve 5671 (AMQP) bağlantı noktaları üzerinden üst ağ geçidinin IP adresine giden iletişimleri yetkilendirilin.
Modülleri en üst katman cihazlara dağıtma
Ağ geçidi hiyerarşisinin en üst katmanındaki IoT Edge cihazının, cihazda çalıştırabileceğiniz tüm iş yükü modüllerine ek olarak, buna dağıtılması gereken bir dizi gerekli modül vardır.
API proxy modülü, en yaygın ağ geçidi senaryolarını işlemek üzere özelleştirilecek şekilde tasarlanmıştır. Bu makalede, modülleri temel bir yapılandırmada ayarlamaya yönelik bir örnek sağlanır. Daha ayrıntılı bilgi ve örnekler için bkz. Ağ geçidi hiyerarşi senaryonuz için API proxy modülünü yapılandırma.
Azure portalında IoT hub'ınıza gidin.
Cihaz yönetimi menüsünün altında Cihazlar'ı seçin.
Listeden yapılandırdığınız en üst katman IoT Edge cihazını seçin.
Modül ayarla’yı seçin.
IoT Edge modülleri bölümünde Ekle'yi ve ardından IoT Edge Modülü'ne tıklayın.
Aşağıdaki modül ayarlarını güncelleştirin:
Ayar Value IoT Modülü adı IoTEdgeAPIProxy
Görüntü URI'si mcr.microsoft.com/azureiotedge-api-proxy:latest
Yeniden başlatma ilkesi her zaman İstenen durum çalışıyor API proxy modülünün farklı bir sürümünü veya mimarisini kullanmak istiyorsanız, Microsoft Yapıt Kayıt Defteri kullanılabilir görüntüleri bulun.
Ortam değişkenleri sekmesinde, değeri
443
olan Metin türünde adlıNGINX_DEFAULT_PORT
bir değişken ekleyin.Kapsayıcı oluşturma seçenekleri sekmesinde bağlantı noktası bağlamalarını 443 numaralı bağlantı noktasına başvuracak şekilde güncelleştirin.
{ "HostConfig": { "PortBindings": { "443/tcp": [ { "HostPort": "443" } ] } } }
Bu değişiklikler API proxy modülünü 443 numaralı bağlantı noktasını dinleyecek şekilde yapılandıracaktır. Bağlantı noktası bağlama çakışmalarını önlemek için edgeHub modülünü bağlantı noktası 443'te dinlemeyecek şekilde yapılandırmanız gerekir. Bunun yerine, API proxy modülü 443 numaralı bağlantı noktasındaki tüm EdgeHub trafiğini yönlendirir.
Modülü dağıtıma eklemek için Ekle'yi seçin.
Çalışma Zamanı Ayarları'nı seçin ve edgeHub modülünü Kapsayıcı Oluşturma Seçenekleri'ni bulun. Bağlantı noktası 443 için bağlantı noktası bağlamasını silip 5671 ve 8883 numaralı bağlantı noktalarının bağlamalarını bırakın.
{ "HostConfig": { "PortBindings": { "5671/tcp": [ { "HostPort": "5671" } ], "8883/tcp": [ { "HostPort": "8883" } ] } } }
Değişikliklerinizi çalışma zamanı ayarlarına kaydetmek için Uygula'yı seçin.
Dağıtımınıza Docker kayıt defteri modülünü eklemek için aşağıdaki değerleri sağlayın.
IoT Edge modülleri bölümünde Ekle'yi ve ardından IoT Edge Modülü'ne tıklayın.
Ayar Value IoT Modülü adı registry
Görüntü URI'si registry:latest
Yeniden başlatma ilkesi always
İstenen durum running
Ortam değişkenleri sekmesinde aşağıdaki değişkenleri ekleyin:
Adı Tür Değer REGISTRY_PROXY_REMOTEURL
Metin Bu kayıt defteri modülünün eşlemesini istediğiniz kapsayıcı kayıt defteri URL'si. Örneğin, https://myregistry.azurecr
. Kayıt defteri modülü yalnızca bir kapsayıcı kayıt defteriyle eşlenebilir, bu nedenle tüm kapsayıcı görüntülerinin tek bir özel kapsayıcı kayıt defterinde olmasını öneririz.REGISTRY_PROXY_USERNAME
Metin Kapsayıcı kayıt defterinde kimlik doğrulaması için kullanıcı adı. REGISTRY_PROXY_PASSWORD
Metin Kapsayıcı kayıt defterinde kimlik doğrulaması için parola. Kapsayıcı oluşturma seçenekleri sekmesinde bağlantı noktası bağlamalarını 5000 numaralı bağlantı noktasına başvuracak şekilde güncelleştirin.
{ "HostConfig": { "PortBindings": { "5000/tcp": [ { "HostPort": "5000" } ] } } }
Modülü dağıtıma eklemek için Ekle'yi seçin.
Sonraki adıma gitmek için İleri: Yollar'ı seçin.
Aşağı akış cihazlarından ioT Hub'a ulaşmak üzere cihazdan buluta iletileri etkinleştirmek için tüm iletileri IoT Hub'a geçiren bir yol ekleyin. Örneğin:
- Ad:
Route
- Değer:
FROM /messages/* INTO $upstream
- Ad:
Son adıma gitmek için Gözden geçir + oluştur'u seçin.
Cihazınıza dağıtmak için Oluştur'u seçin.
Modülleri alt katman cihazlara dağıtma
Ağ geçidi hiyerarşisinin alt katmanlarında yer alan IoT Edge cihazları, cihazda çalıştırabileceğiniz iş yükü modüllerine ek olarak bunlara dağıtılması gereken bir modüle sahiptir.
Kapsayıcı görüntüsü çekmelerini yönlendirme
Ağ geçidi hiyerarşilerinde IoT Edge cihazları için gerekli ara sunucu modülünü tartışmadan önce, alt katmanlardaki IoT Edge cihazlarının modül görüntülerini nasıl aldıklarını anlamak önemlidir.
Alt katman cihazlarınız buluta bağlanamıyorsa ancak modül görüntülerini her zamanki gibi çekmelerini istiyorsanız, ağ geçidi hiyerarşisinin en üst katman cihazı bu istekleri işleyecek şekilde yapılandırılmalıdır. Üst katman cihazının kapsayıcı kayıt defterinize eşlenmiş bir Docker kayıt defteri modülü çalıştırması gerekir. Ardından, kapsayıcı isteklerini buna yönlendirmek için API proxy modülünü yapılandırın. Bu ayrıntılar bu makalenin önceki bölümlerinde ele alınıyor. Bu yapılandırmada, alt katman cihazlar bulut kapsayıcısı kayıt defterlerine değil, üst katmanda çalışan kayıt defterine işaret etmemelidir.
Örneğin, alt katman cihazları yerine mcr.microsoft.com/azureiotedge-api-proxy:1.1
çağrısı $upstream:443/azureiotedge-api-proxy:1.1
yapmalıdır.
$upstream parametresi alt katmandaki bir cihazın üst öğesini işaret eder, bu nedenle istek, bir ara sunucu ortamı yönlendirme kapsayıcısı isteklerini kayıt defteri modülüne yönlendiren üst katmana ulaşana kadar tüm katmanlara yönlendirilir. :443
Bu örnekteki bağlantı noktası, üst cihazdaki API proxy modülünün dinlediği bağlantı noktasıyla değiştirilmelidir.
API proxy modülü yalnızca bir kayıt defteri modülüne yönlendirebilir ve her kayıt defteri modülü yalnızca bir kapsayıcı kayıt defterine eşlenebilir. Bu nedenle, alt katman cihazlarının çekmesi gereken tüm görüntüler tek bir kapsayıcı kayıt defterinde depolanmalıdır.
Alt katman cihazların bir ağ geçidi hiyerarşisi üzerinden modül çekme istekleri yapmasını istemiyorsanız, bir diğer seçenek de yerel kayıt defteri çözümünü yönetmektir. Ya da dağıtımları oluşturmadan önce modül görüntülerini cihazlara gönderin ve ardından imagePullPolicy değerini hiçbir zaman olarak ayarlayın.
IoT Edge aracısını önyükleme
IoT Edge aracısı, herhangi bir IoT Edge cihazında başlayan ilk çalışma zamanı bileşenidir. Tüm aşağı akış IoT Edge cihazlarının başladığında edgeAgent modül görüntüsüne erişebildiğinden ve ardından dağıtımlara erişip modül görüntülerinin geri kalanını başlatabildiğinden emin olmanız gerekir.
Kimlik doğrulama bilgilerini, sertifikalarını ve üst konak adını sağlamak için ioT Edge cihazında yapılandırma dosyasına gittiğiniz zaman edgeAgent kapsayıcı görüntüsünü de güncelleştirin.
En üst düzey ağ geçidi cihazı kapsayıcı görüntüsü isteklerini işleyecek şekilde yapılandırılmışsa öğesini üst konak adı ve API proxy dinleme bağlantı noktası ile değiştirin mcr.microsoft.com
. Dağıtım bildiriminde kısayol olarak kullanabilirsiniz $upstream
, ancak bu, yönlendirmeyi işlemek için edgeHub modülünü gerektirir ve bu modül bu noktada başlatılmadı. Örneğin:
[agent]
name = "edgeAgent"
type = "docker"
[agent.config]
image: "{Parent FQDN or IP}:443/azureiotedge-agent:1.5"
Yerel bir kapsayıcı kayıt defteri kullanıyorsanız veya kapsayıcı görüntülerini cihazda el ile sağlıyorsanız, yapılandırma dosyasını uygun şekilde güncelleştirin.
Çalışma zamanını yapılandırma ve ara sunucu modülünü dağıtma
Bulut ile aşağı akış IoT Edge cihazları arasındaki tüm iletişimleri yönlendirmek için API proxy modülü gereklidir. Hiyerarşinin alt katmanında, aşağı akış IoT Edge cihazları olmayan bir IoT Edge cihazı bu modüle ihtiyaç duymaz.
API proxy modülü, en yaygın ağ geçidi senaryolarını işlemek üzere özelleştirilecek şekilde tasarlanmıştır. Bu makalede, modülleri temel bir yapılandırmada ayarlama adımlarına kısaca değinilmiştir. Daha ayrıntılı bilgi ve örnekler için bkz. Ağ geçidi hiyerarşi senaryonuz için API proxy modülünü yapılandırma.
Azure portalında IoT hub'ınıza gidin.
Cihaz yönetimi menüsünün altında Cihazlar'ı seçin.
Listeden yapılandırdığınız alt katman IoT Edge cihazını seçin.
Modül ayarla’yı seçin.
IoT Edge modülleri bölümünde Ekle'yi ve ardından IoT Edge Modülü'ne tıklayın.
Aşağıdaki modül ayarlarını güncelleştirin:
Ayar Value IoT Modülü adı IoTEdgeAPIProxy
Görüntü URI'si mcr.microsoft.com/azureiotedge-api-proxy:latest
Yeniden başlatma ilkesi always
İstenen durum running
API proxy modülünün farklı bir sürümünü veya mimarisini kullanmak istiyorsanız, Microsoft Yapıt Kayıt Defteri kullanılabilir görüntüleri bulun.
Ortam değişkenleri sekmesinde, değeri
443
olan Metin türünde adlıNGINX_DEFAULT_PORT
bir değişken ekleyin.Kapsayıcı oluşturma seçenekleri sekmesinde bağlantı noktası bağlamalarını 443 numaralı bağlantı noktasına başvuracak şekilde güncelleştirin.
{ "HostConfig": { "PortBindings": { "443/tcp": [ { "HostPort": "443" } ] } } }
Bu değişiklikler API proxy modülünü 443 numaralı bağlantı noktasını dinleyecek şekilde yapılandıracaktır. Bağlantı noktası bağlama çakışmalarını önlemek için edgeHub modülünü bağlantı noktası 443'te dinlemeyecek şekilde yapılandırmanız gerekir. Bunun yerine, API proxy modülü 443 numaralı bağlantı noktasındaki tüm EdgeHub trafiğini yönlendirir.
Çalışma Zamanı Ayarları'nı seçin.
edgeHub modülü ayarlarını güncelleştirin:
- Görüntü alanında değerini ile
$upstream:443
değiştirinmcr.microsoft.com
. - Seçenekler oluştur alanında 443 numaralı bağlantı noktası için bağlantı noktası bağlamasını silin ve 5671 ve 8883 numaralı bağlantı noktaları için bağlamaları bırakın.
{ "HostConfig": { "PortBindings": { "5671/tcp": [ { "HostPort": "5671" } ], "8883/tcp": [ { "HostPort": "8883" } ] } } }
- Görüntü alanında değerini ile
edgeAgent modülü ayarlarını güncelleştirin:
- Görüntü alanında değerini ile
$upstream:443
değiştirinmcr.microsoft.com
.
- Görüntü alanında değerini ile
Değişikliklerinizi çalışma zamanı ayarlarına kaydetmek için Uygula'yı seçin.
Sonraki adıma gitmek için İleri: Yollar'ı seçin.
Aşağı akış cihazlarından cihazdan buluta iletilerin IoT Hub'a ulaşmasını sağlamak için, tüm iletileri öğesine
$upstream
geçiren bir yol ekleyin. Yukarı akış parametresi, alt katman cihazlar söz konusu olduğunda üst cihazı gösterir. Örneğin:- Ad:
Route
- Değer:
FROM /messages/* INTO $upstream
- Ad:
Son adıma gitmek için Gözden geçir + oluştur'u seçin.
Cihazınıza dağıtmak için Oluştur'u seçin.
Alt öğeden üst öğeye bağlantıyı doğrulama
Aşağı akış cihazında aşağıdaki
openssl
komutu çalıştırarak alt öğeden üst öğeye TLS/SSL bağlantısını doğrulayın. değerini üst öğesinin FQDN veya IP adresiyle değiştirin<parent hostname>
.openssl s_client -connect <parent hostname>:8883 </dev/null 2>&1 >/dev/null
komutu, aşağıdaki örneğe benzer şekilde üst sertifika zincirinin başarılı bir şekilde doğrulanması gerektiğini onaylamalıdır:
azureUser@child-vm:~$ openssl s_client -connect <parent hostname>:8883 </dev/null 2>&1 >/dev/null Can't use SSL_get_servername depth=3 CN = Azure_IoT_Hub_CA_Cert_Test_Only verify return:1 depth=2 CN = Azure_IoT_Hub_Intermediate_Cert_Test_Only verify return:1 depth=1 CN = gateway.ca verify return:1 depth=0 CN = <parent hostname> verify return:1 DONE
"SSL_get_servername kullanamıyorum" iletisi yoksayılabilir.
Değerin üst
depth=0 CN =
öğesinin yapılandırma dosyasında belirtilen konak adı parametresiyle eşleşmesiconfig.toml
gerekir.Komut zaman aşımına uğradıysa, alt ve üst cihazlar arasında engellenmiş bağlantı noktaları olabilir. Cihazların ağ yapılandırmasını ve ayarlarını gözden geçirin.
Uyarı
Ağ geçidinin
[edge_ca]
bölümünde tam zincir sertifikası kullanmama, aşağı akış cihazından sertifika doğrulama hatalarıyla sonuçlanmıştır. Örneğin,openssl s_client ...
yukarıdaki komut şunları üretir:Can't use SSL_get_servername depth=1 CN = gateway.ca verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 CN = <parent hostname> verify return:1 DONE
Aşağı akış cihazında tam zincir cihaz sertifikası kullanılmamış ve yapılandırılmamışsa aşağı akış IoT Edge cihazına bağlanan TLS özellikli cihazlarda da aynı sorun oluşur.
IoT için Microsoft Defender'ın IoT Edge ağ geçidiyle tümleştirilmesi
Aşağı akış cihazları, aşağı akış cihaz proxy'si kullanarak IoT'nin mikro aracısı için Microsoft Defender'ı IoT Edge ağ geçidiyle tümleştirmek için kullanılabilir.
IoT için Defender mikro aracısı hakkında daha fazla bilgi edinin.
Aşağı akış cihaz ara sunucusu kullanarak IoT için Microsoft Defender'ı IoT Edge ile tümleştirmek için:
Azure Portal’ında oturum açın.
IoT Hub
Your Hub
>>Cihaz yönetimi>Cihazları'na gidinCihazınızı seçin.
Bu yönergelerden
DefenderIotMicroAgent
oluşturduğunuz modül ikizini seçin.Bağlantı dizenizi (birincil anahtar) kopyalamak için düğmeyi seçin.
bağlantı dizesi bir metin düzenleme uygulamasına yapıştırın ve dizeye GatewayHostName ekleyin. GatewayHostName, üst cihazın tam etki alanı adı veya IP adresidir. Örneğin,
HostName=nested11.azure-devices.net;DeviceId=downstream1;ModuleId=module1;SharedAccessKey=xxx;GatewayHostName=10.16.7.4
.Aşağı akış cihazında bir terminal açın.
utf-8 içinde kodlanmış bağlantı dizesi Bulut için Defender aracı dizinine aşağıdaki yoldaki dosyaya
connection_string.txt
yerleştirmek için aşağıdaki komutu kullanın:/etc/defender_iot_micro_agent/connection_string.txt
sudo bash -c 'echo "<connection string>" > /etc/defender_iot_micro_agent/connection_string.txt'
artık
connection_string.txt
aşağıdaki yol konumunda/etc/defender_iot_micro_agent/connection_string.txt
bulunmalıdır.Şu komutu kullanarak hizmeti yeniden başlatın:
sudo systemctl restart defender-iot-micro-agent.service
Cihaza geri dönün.
IoT Hub bağlantısını etkinleştirin ve dişli simgesini seçin.
Görüntülenen listeden üst cihazı seçin.
Aşağı akış cihazı ile IoT Edge cihazı arasındaki 8883 numaralı bağlantı noktasının (MQTT) açık olduğundan emin olun.
Sonraki adımlar
IoT Edge cihazını ağ geçidi olarak kullanma
Ağ geçidi hiyerarşi senaryonuz için API proxy modülünü yapılandırma