Aracılığıyla paylaş


Öğretici: Azure IoT Edge cihazı yapılandırma

Şunlar için geçerlidir: evet simgesi IoT Edge 1.1

Önemli

IoT Edge 1.1 destek sonu tarihi 13 Aralık 2022'ydi. Bu ürünün, hizmetin, teknolojinin veya API’nin nasıl desteklendiği hakkında bilgi edinmek için Microsoft Ürün Yaşam Döngüsü’ne göz atın. IoT Edge'in en son sürümüne güncelleştirme hakkında daha fazla bilgi için bkz . IoT Edge'i güncelleştirme.

Bu makalede, Linux çalıştıran bir Azure sanal makinesini saydam ağ geçidi işlevi gören bir Azure IoT Edge cihazı olacak şekilde yapılandıracağız. Saydam ağ geçidi yapılandırması, cihazların ağ geçidinin var olduğunu bilmeden ağ geçidi üzerinden Azure IoT Hub'a bağlanmasına olanak tanır. Aynı zamanda IoT Hub'daki cihazlarla etkileşim kuran bir kullanıcı ara ağ geçidi cihazının farkında değildir. Nihai olarak, saydam ağ geçidine IoT Edge modülleri ekleyerek sistemimize uç analizi ekleyeceğiz.

Not

Bu öğreticideki kavramlar IoT Edge'in tüm sürümleri için geçerlidir, ancak senaryoyu denemek için oluşturduğunuz örnek cihaz IoT Edge sürüm 1.1'i çalıştırır.

Bu makaledeki adımlar genellikle bir bulut geliştiricisi tarafından gerçekleştirilir.

Öğreticinin bu bölümünde şunların nasıl yapılacağını öğreneceksiniz:

  • Ağ geçidi cihazınızın aşağı akış cihazlarınıza güvenli bir şekilde bağlanmasına izin vermek için sertifikalar oluşturun.
  • Bir IoT Edge cihazı oluşturun.
  • IoT Edge cihazınızın benzetimini yapmak için bir Azure sanal makinesi oluşturun.

Önkoşullar

Bu makale, IoT Edge'de Azure Machine Learning'i kullanma hakkında bir öğretici serisinin bir parçasıdır. Serideki her makale, önceki makaledeki çalışmaya göre derlemektedir. Bu makaleye doğrudan ulaştıysanız serideki ilk makaleye bakın.

Sertifika oluşturma

Bir cihazın ağ geçidi olarak çalışması için aşağı akış cihazlarına güvenli bir şekilde bağlanması gerekir. IoT Edge ile cihazlar arasında güvenli bağlantılar kurmak için ortak anahtar altyapısını (PKI) kullanabilirsiniz. Bu durumda, aşağı akış IoT cihazının saydam bir ağ geçidi olarak davranan bir IoT Edge cihazına bağlanmasına izin veririz. Makul güvenliği sağlamak için aşağı akış cihazının IoT Edge cihazının kimliğini onaylaması gerekir. IoT Edge cihazlarının sertifikaları nasıl kullandığı hakkında daha fazla bilgi için bkz . Azure IoT Edge sertifika kullanım ayrıntıları.

Bu bölümde, oluşturup çalıştıracağımız bir Docker görüntüsü kullanarak otomatik olarak imzalanan sertifikaları oluşturacağız. Windows geliştirme makinesinde sertifika oluşturmak için gereken adım sayısını azalttığı için bu adımı tamamlamak için bir Docker görüntüsü kullanmayı seçtik. Docker görüntüsüyle neyi otomatik hale topladığımızı anlamak için bkz . IoT Edge cihaz özelliklerini test etmek için tanıtım sertifikaları oluşturma.

  1. Geliştirme VM'nizde oturum açın.

  2. yolu ve adı c:\edgeCertificates olan yeni bir klasör oluşturun.

  3. Henüz çalışmıyorsa Windows Başlat menüsü'den Windows için Docker'ı başlatın.

  4. Visual Studio Code'u açın.

  5. Dosya>Klasör Aç'ı ve ardından C:\source\IoTEdgeAndMlSample\CreateCertificates'i seçin.

  6. Gezgin bölmesinde dockerfile dosyasına sağ tıklayın ve Görüntü Oluştur'a tıklayın.

  7. İletişim kutusunda, görüntü adı ve etiketi için varsayılan değeri kabul edin: createcertificates: latest.

    Visual Studio Code'da sertifika oluşturmayı gösteren ekran görüntüsü.

  8. Derlemenin tamamlanmasını bekleyin.

    Not

    Eksik ortak anahtarla ilgili bir uyarı görebilirsiniz. Bu uyarıyı yoksaymak güvenlidir. Benzer şekilde, görüntünüzdeki izinleri denetlemenizi veya sıfırlamanızı öneren ve bu görüntü için yoksayabileceğiniz bir güvenlik uyarısı görürsünüz.

  9. Visual Studio Code terminal penceresinde createcertificates kapsayıcısını çalıştırın.

    docker run --name createcertificates --rm -v c:\edgeCertificates:/edgeCertificates createcertificates /edgeCertificates
    
  10. Docker, c:\ sürücüsüne erişim ister. Paylaş'ı seçin.

  11. İstendiğinde kimlik bilgilerinizi sağlayın.

  12. Kapsayıcının çalışması tamamlandıktan sonra c:\edgeCertificates içinde aşağıdaki dosyaları denetleyin:

    • c:\edgeCertificates\certs\azure-iot-test-only.root.ca.cert.pem
    • c:\edgeCertificates\certs\new-edge-device-full-chain.cert.pem
    • c:\edgeCertificates\certs\new-edge-device.cert.pem
    • c:\edgeCertificates\certs\new-edge-device.cert.pfx
    • c:\edgeCertificates\private\new-edge-device.key.pem

Sertifikaları Azure Key Vault'a yükleme

Sertifikalarımızı güvenli bir şekilde depolamak ve bunları birden çok cihazdan erişilebilir hale getirmek için sertifikaları Azure Key Vault'a yükleyeceğiz. Yukarıdaki listeden görebileceğiniz gibi iki tür sertifika dosyamız vardır: PFX ve PEM. PFX dosyasını Key Vault'a yüklenecek Key Vault sertifikaları olarak ele alacağız. PEM dosyaları düz metindir ve bunları Key Vault gizli dizileri olarak ele alacağız. Jupyter not defterlerini çalıştırarak oluşturduğumuz Azure Machine Learning çalışma alanıyla ilişkili Key Vault örneğini kullanacağız.

  1. Azure portalından Azure Machine Learning çalışma alanınıza gidin.

  2. Machine Learning çalışma alanının genel bakış sayfasında Key Vault'un adını bulun.

    Anahtar kasasının adını kopyalamayı gösteren ekran görüntüsü.

  3. Geliştirme makinenizde sertifikaları Key Vault'a yükleyin. subscriptionId> ve< keyvaultname> değerini kaynak bilgilerinizle değiştirin.<

    c:\source\IoTEdgeAndMlSample\CreateCertificates\upload-keyvaultcerts.ps1 -SubscriptionId <subscriptionId> -KeyVaultName <keyvaultname>
    
  4. İstenirse Azure'da oturum açın.

  5. Betik, yeni Key Vault girişlerini listeleyen çıkışla birkaç dakika boyunca çalışır.

    Key Vault betik çıkışını gösteren ekran görüntüsü.

IoT Edge cihazını kaydetme

Azure IoT Edge cihazını bir IoT hub'ına bağlamak için önce hub'a bir cihaz kaydederiz. Buluttaki cihaz kimliğinden bağlantı dizesi alır ve IoT Edge cihazımızda çalışma zamanını yapılandırmak için kullanırız. Yapılandırılmış bir cihaz hub'a bağlandıktan sonra modülleri dağıtabilir ve ileti gönderebiliriz. Fiziksel IoT Edge cihazının yapılandırmasını, IoT Hub'daki ilgili cihaz kimliğini değiştirerek de değiştirebiliriz.

Bu öğreticide, Visual Studio Code kullanarak yeni cihaz kimliğini kaydederiz. Azure portalını veya Azure CLI'yı kullanarak da bu adımları tamamlayabilirsiniz. Hangi yöntemi seçerseniz seçin, IoT Edge cihazınızın cihaz bağlantı dizesi edindiğinizden emin olun. Cihaz bağlantı dizesi Azure portalında cihazınızın ayrıntılar sayfasında bulunabilir.

  1. Geliştirme makinenizde Visual Studio Code'ı açın.

  2. Visual Studio Code Explorer görünümünden Azure IoT Hub çerçevesini genişletin.

  3. Üç noktayı seçin ve IoT Edge Cihazı Oluştur'u seçin.

  4. Cihaza bir ad verin. Kolaylık olması için aaTurbofanEdgeDevice adını kullanarak listelenen cihazların en üstüne doğru sıralanır.

  5. Yeni cihaz, cihaz listesinde görünür.

    Visual Studio Code Explorer'da cihazın görünümünü gösteren ekran görüntüsü.

Azure sanal makinesi dağıtma

Azure IoT Edge çalışma zamanı yüklü ve yapılandırılmış bir Ubuntu 18.04 LTS sanal makinesi kullanıyoruz. Dağıtım, iotedge-vm-deploy proje deposunda tutulan bir Azure Resource Manager şablonu kullanır. Şablonda sağladığınız bağlantı dizesi kullanarak önceki adımda kaydettiğiniz IoT Edge cihazını sağlar.

Azure portalını veya Azure CLI'yi kullanarak sanal makineyi dağıtabilirsiniz. Azure portalı adımlarını göstereceğiz. Daha fazla bilgi için bkz. Ubuntu'da Azure IoT Edge çalıştırma Sanal Makineler.

Azure'a Dağıt Düğmesi'ni kullanarak dağıtma

  1. ARM şablonunu kullanarak iotedge-vm-deploy Ubuntu 18.04 LTS sanal makinenizi dağıtmak için aşağıdaki düğmeye tıklayın:

    iotedge-vm-deploy için Azure Düğmesini dağıtma

  2. Yeni başlatılan pencerede, kullanılabilir form alanlarını doldurun.

    Alan Açıklama
    Abonelik Sanal makinenin dağıtılacağı etkin Azure aboneliği.
    Kaynak grubu Sanal makineyi ve ilişkili kaynakları içeren mevcut veya yeni oluşturulmuş bir Kaynak Grubu.
    DNS Etiketi Ön Eki Seçtiğiniz, sanal makinenin ana bilgisayar adının ön ekini oluşturmak için kullanılan gerekli bir değerdir.
    Yönetici Kullanıcı Adı Dağıtımda kök ayrıcalıkları sağlanacak bir kullanıcı adı.
    Cihaz Bağlantı Dizesi Cihaz, hedeflenen IoT Hub'ınız içinde oluşturulmuş bir cihaz için bağlantı dizesi.
    VM Boyutu Dağıtılacak sanal makinenin boyutu
    Ubuntu İşletim Sistemi Sürümü Temel sanal makineye yüklenecek Ubuntu işletim sisteminin sürümü.
    Konum Sanal makinenin dağıtılacağı coğrafi bölge , bu değer varsayılan olarak seçili Kaynak Grubunun konumudur.
    Kimlik Doğrulaması Türü Tercihinize bağlı olarak sshPublicKey veya parola'yı seçin.
    Yönetici Parolası veya Anahtarı SSH Ortak Anahtarının değeri veya Kimlik Doğrulama Türü seçimine bağlı olarak parolanın değeri.
  3. Tüm alanlar doldurulduğunda, koşulları kabul etmek için sayfanın alt kısmındaki onay kutusunu seçin ve gözden geçir + oluştur ve Oluştur'u seçerek dağıtımı başlatın.

  4. Azure portalında sanal makinenize gidin. Bunu kaynak grubunuz aracılığıyla veya portal giriş sayfasındaki Azure hizmetleri altında Sanal makineler'i seçerek bulabilirsiniz.

  5. Sanal makinenizin DNS adını not edin. Sanal makinenizde oturum açmak için buna ihtiyacınız olacaktır.

IoT Edge cihazınıza bağlanma

  1. Bir komut istemi açın ve sanal makinenizde oturum açmak için aşağıdaki komutu kullanın. Önceki bölüme göre kullanıcı adı ve DNS adı için kendi bilgilerinizi girin.

    ssh <adminUsername>@<DNS_name>
    
  2. Konağın orijinalliğini doğrulamanız istendiğinde evet yazın ve Enter tuşuna basın.

  3. İstendiğinde parolanızı girin.

  4. Ubuntu bir karşılama iletisi görüntüler ve ardından gibi <username>@<machinename>:~$bir istem görmeniz gerekir.

Key Vault sertifikalarını indirme

Bu makalenin önceki bölümlerinde, Sertifikaları IoT Edge cihazımız ve aşağı akış cihazımız için kullanılabilir hale getirmek için Key Vault'a yükledik. Aşağı akış cihazı, IoT Hub ile iletişim kurmak için ağ geçidi olarak IoT Edge cihazını kullanır.

Öğreticinin ilerleyen bölümlerinde aşağı akış cihazıyla ilgileneceğiz. Bu bölümde, sertifikaları IoT Edge cihazına indirin.

  1. Linux sanal makinesindeki SSH oturumundan Azure CLI ile Azure'da oturum açın.

    az login
    
  2. Microsoft cihaz oturum açma sayfasına bir tarayıcı açmanız ve benzersiz bir kod sağlamanız istenir. Bu adımları yerel makinenizde gerçekleştirebilirsiniz. Kimlik doğrulamayı bitirdiğinizde tarayıcı penceresini kapatın.

  3. Başarıyla kimlik doğrulaması yaptığınızda Linux VM oturum açar ve Azure aboneliklerinizi listeler.

  4. Azure CLI komutları için kullanmak istediğiniz Azure aboneliğini ayarlayın.

    az account set --subscription <subscriptionId>
    
  5. Sertifikalar için VM'de bir dizin oluşturun.

    sudo mkdir /edgeMlCertificates
    
  6. Anahtar kasasında depoladığınız sertifikaları indirin: new-edge-device-full-chain.cert.pem, new-edge-device.key.pem ve azure-iot-test-only.root.ca.cert.pem.

    key_vault_name="<key vault name>"
    sudo az keyvault secret download --vault-name $key_vault_name --name new-edge-device-full-chain-cert-pem -f /edgeMlCertificates/new-edge-device-full-chain.cert.pem
    sudo az keyvault secret download --vault-name $key_vault_name --name new-edge-device-key-pem -f /edgeMlCertificates/new-edge-device.key.pem
    sudo az keyvault secret download --vault-name $key_vault_name --name azure-iot-test-only-root-ca-cert-pem -f /edgeMlCertificates/azure-iot-test-only.root.ca.cert.pem
    

IoT Edge cihaz yapılandırmasını güncelleştirme

IoT Edge çalışma zamanı, yapılandırmasını kalıcı hale getirmek için /etc/iotedge/config.yaml dosyasını kullanır. Bu dosyadaki iki bilgiyi güncelleştirmemiz gerekiyor:

  • Sertifikalar: Aşağı akış cihazlarıyla yapılan bağlantılar için kullanılacak sertifikalar
  • Ana bilgisayar adı: VM IoT Edge cihazının tam etki alanı adı (FQDN)

config.yaml dosyasını doğrudan düzenleyerek sertifikaları ve konak adını güncelleştirin.

  1. config.yaml dosyasını açın.

    sudo nano /etc/iotedge/config.yaml
    
  2. config.yaml dosyasının sertifikalar bölümünü güncelleştirmek için baştaki # değeri kaldırıp yolu dosyanın aşağıdaki örneğe benzemesi için ayarlayın:

    certificates:
      device_ca_cert: "/edgeMlCertificates/new-edge-device-full-chain.cert.pem"
      device_ca_pk: "/edgeMlCertificates/new-edge-device.key.pem"
      trusted_ca_certs: "/edgeMlCertificates/azure-iot-test-only.root.ca.cert.pem"
    

    Sertifikalar: satırında önce boşluk olmadığından ve iç içe sertifikaların her birinin iki boşlukla girintilendiğinden emin olun.

    Nano'ya sağ tıklanması panonuzun içeriğini geçerli imleç konumuna yapıştırır. Dizeyi değiştirmek için klavye oklarınızı kullanarak değiştirmek istediğiniz dizeye gidin, dizeyi silin ve arabellekten yapıştırmak için sağ tıklayın.

  3. Azure portalında sanal makinenize gidin. Genel Bakış bölümünden DNS adını (makinenin FQDN'sini) kopyalayın.

  4. FQDN'yi config.yml dosyasının hostname bölümüne yapıştırın. Adın küçük harf olduğundan emin olun.

    hostname: '<machinename>.<region>.cloudapp.azure.com'
    
  5. Ctrl+X, Y ve Enter tuşlarını seçerek dosyayı kaydedin ve kapatın.

  6. IoT Edge daemon'unu yeniden başlatın.

    sudo systemctl restart iotedge
    
  7. IoT Edge daemon'unun durumunu denetleyin. Komutun ardından çıkmak için :q girin.

    systemctl status iotedge
    

Sorun giderme

Durumunda hatalar ("[HATA]" ön ekli renkli metin) görürseniz ayrıntılı hata bilgileri için daemon günlüklerini inceleyin.

journalctl -u iotedge --no-pager --no-full

Hataları giderme hakkında daha fazla bilgi için sorun giderme sayfasına bakın.

Kaynakları temizleme

Bu öğretici, her makalenin öncekilerde yapılan işlere göre derlendiği bir kümenin parçasıdır. Son öğreticiyi tamamlayana kadar kaynakları temizlemeyi bekleyin.

Sonraki adımlar

Azure VM'yi IoT Edge saydam ağ geçidi olarak yapılandırmayı yeni tamamladık. Key Vault'a yüklediğimiz test sertifikalarını oluşturarak başladık. Ardından, vm'yi Azure Market Ubuntu Server 16.04 LTS + Azure IoT Edge çalışma zamanı görüntüsüyle dağıtmak için bir betik ve Resource Manager şablonu kullandık. VM çalışır durumda olduğundan SSH aracılığıyla bağlandık. Ardından Azure'da oturum açtık ve Key Vault'tan sertifikaları indirdik. config.yaml dosyasını güncelleştirerek IoT Edge çalışma zamanının yapılandırmasında çeşitli güncelleştirmeler yaptık.

IoT Edge modülleri oluşturmak için sonraki makaleye geçin.