IoT Edge modülünde Azure Blob Depolama'yı cihazınıza dağıtma

Şunlar için geçerlidir:IoT Edge 1.5 onay işareti IoT Edge 1.5 IoT Edge 1.4 onay işareti 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.

IoT Edge cihazına modül dağıtmanın çeşitli yolları vardır ve bunların tümü IoT Edge'de Azure Blob Depolama modülleri için çalışır. En basit iki yöntem Azure portalını veya Visual Studio Code şablonlarını kullanmaktır.

Önkoşullar

Azure portalından dağıtma

Azure portalı, dağıtım bildirimi oluşturma ve dağıtımı bir IoT Edge cihazına gönderme konusunda size yol gösterir.

Cihazınızı seçin

  1. Azure portalında oturum açın ve IoT hub'ınıza gidin.
  2. Cihaz yönetimi menüsünün altında Cihazlar'ı seçin.
  3. Listeden hedef IoT Edge cihazını seçin.
  4. Modülleri Ayarlama'yı seçin.

Dağıtım bildirimi yapılandırma

Dağıtım bildirimi, dağıtılacak modülleri, modüller arasında verilerin nasıl aktığını ve modül ikizlerinin istenen özelliklerini açıklayan bir JSON belgesidir. Azure portalında dağıtım bildirimi oluşturma konusunda size yol gösteren bir sihirbaz vardır. Sekmeler halinde düzenlenmiş üç adım vardır: Modüller, Rotalar ve Gözden Geçirme + Oluştur.

Modül ekle

  1. Sayfanın IoT Edge Modülleri bölümünde Ekle açılan listesini seçin ve IoT Edge Modülü Ekle sayfasını görüntülemek için IoT Edge Modülü'ne tıklayın.

  2. Ayarlar sekmesinde modül için bir ad sağlayın ve kapsayıcı görüntüsü URI'sini belirtin:

    Örnekler:

    • IoT Edge Modülü Adı: azureblobstorageoniotedge
    • Görüntü URI'si: mcr.microsoft.com/azure-blob-storage:latest

    IoT Edge Modülü Ekle sayfasının Modül Ayarlar sekmesini gösteren ekran görüntüsü. .

    Bu yordamda açıklandığı gibi Modül Ayarlar, Kapsayıcı Oluşturma Seçenekleri ve Modül İkizi Ayarlar sekmelerinde değerleri belirtmeden Ekle'yi seçmeyin.

    Önemli

    Azure IoT Edge, modüllere çağrı yaptığınızda büyük/küçük harfe duyarlıdır ve Depolama SDK'sı da varsayılan olarak küçük harf olarak ayarlanır. Azure Market modülün adı AzureBlob Depolama onIoTEdge olsa da, adı küçük harfle değiştirmek IoT Edge modülündeki Azure Blob Depolama bağlantılarınızın kesilmemesini sağlamaya yardımcı olur.

  3. Kapsayıcı Oluşturma Seçenekleri sekmesini açın.

  4. Depolama hesabı bilgilerini ve cihazınızdaki depolama için bir bağlama sağlamak üzere aşağıdaki JSON dosyasını kopyalayıp kutuya yapıştırın.

    {
      "Env":[
        "LOCAL_STORAGE_ACCOUNT_NAME=<local storage account name>",
        "LOCAL_STORAGE_ACCOUNT_KEY=<local storage account key>"
      ],
      "HostConfig":{
        "Binds":[
            "<mount>"
        ],
        "PortBindings":{
          "11002/tcp":[{"HostPort":"11002"}]
        }
      }
    }
    

    IoT Edge Modülü Ekle sayfasının Kapsayıcı Oluşturma Seçenekleri sekmesini gösteren ekran görüntüsü..

  5. Kapsayıcı Oluşturma Seçenekleri'ne kopyaladığınız JSON'u aşağıdaki bilgilerle güncelleştirin:

    • değerini anımsayabileceğiniz bir adla değiştirin <local storage account name> . Hesap adları 3 ile 24 karakter uzunluğunda ve küçük harfler ve sayılar olmalıdır. Boşluk yok.

    • değerini 64 baytlık base64 anahtarıyla değiştirin <local storage account key> . GeneratePlus gibi araçlarla bir anahtar oluşturabilirsiniz. Blob depolamaya diğer modüllerden erişmek için bu kimlik bilgilerini kullanırsınız.

    • değerini kapsayıcı işletim sisteminize göre değiştirin <mount> . IoT Edge cihazınızda blob modülünün verilerini depoladığı mevcut bir dizinin adını veya mutlak yolunu belirtin. Depolama bağlaması, cihazınızda sağladığınız bir konumu modüldeki belirli bir konuma eşler.

    Linux kapsayıcıları için biçim <, depolama yolunuz veya biriminiz>:/blobroot'tur. Örneğin:

    Önemli

    • IoT Edge'de Blob Depolama modülündeki belirli bir konuma işaret eden depolama bağlama değerinin ikinci yarısını değiştirmeyin. Depolama bağlaması her zaman Linux kapsayıcıları için :/blobroot ile bitmelidir.

    • IoT Edge modül kapsayıcılarına bağlı birimleri kaldırmaz. Bu davranış, verilerin yükseltme senaryoları gibi kapsayıcı örnekleri arasında kalıcı hal almasına izin verdiğinden tasarım gereğidir. Ancak, bu birimler kullanılmamış durumda bırakılırsa, disk alanı tükenmesine ve ardından oluşabilecek sistem hatalarına yol açabilir. Senaryonuzda docker birimleri kullanıyorsanız, özellikle üretim senaryolarında kullanılmayan birimleri kaldırmak için docker volume prune ve docker volume rm gibi docker araçlarını kullanmanızı öneririz.

  6. Modül İkizi Ayarlar sekmesinde aşağıdaki JSON dosyasını kopyalayın ve kutuya yapıştırın.

    {
      "deviceAutoDeleteProperties": {
        "deleteOn": <true, false>,
        "deleteAfterMinutes": <timeToLiveInMinutes>,
        "retainWhileUploading": <true,false>
      },
      "deviceToCloudUploadProperties": {
        "uploadOn": <true, false>,
        "uploadOrder": "<NewestFirst, OldestFirst>",
        "cloudStorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>; EndpointSuffix=<your end point suffix>",
        "storageContainersForUpload": {
          "<source container name1>": {
            "target": "<your-target-container-name>"
          }
        },
        "deleteAfterUpload": <true,false>
      }
    }
    
  7. Her özelliği yer tutucular tarafından gösterildiği gibi uygun bir değerle yapılandırın. IoT Edge simülatörünü kullanıyorsanız, deviceToCloudUploadProperties ve deviceAutoDeleteProperties tarafından açıklandığı gibi bu özellikler için değerleri ilgili ortam değişkenlerine ayarlayın.

    İpucu

    Kapsayıcınızın target adında adlandırma kısıtlamaları vardır; örneğin ön $ ek kullanmak desteklenmez. Tüm kısıtlamaları görmek için Kapsayıcı Adları'na bakın.

    Not

    Kapsayıcı hedefiniz içinde adlandırılmamışsa veya null storageContainersForUploadise, hedefe varsayılan bir ad atanır. Kapsayıcıya yüklemeyi durdurmak istiyorsanız, kapsayıcıdan storageContainersForUploadtamamen kaldırılmalıdır. Daha fazla bilgi için IoT Edge'de Azure Blob Depolama ile uçta veri depolama bölümüne bakındeviceToCloudUploadProperties.

    IoT Edge Modülü Ekle sayfasının Modül İkizi Ayarlar sekmesini gösteren ekran görüntüsü.

    Modülünüz dağıtıldıktan sonra deviceToCloudUploadProperties ve deviceAutoDeleteProperties yapılandırma hakkında bilgi için bkz . Modül İkizini Düzenleme. İstenen özellikler hakkında daha fazla bilgi için bkz . İstenen özellikleri tanımlama veya güncelleştirme.

  8. Ekle'yi seçin.

  9. Yollar bölümüne devam etmek için İleri: Yollar'ı seçin.

Yolları belirtme

Varsayılan yolları koruyun ve gözden geçirme bölümüne devam etmek için İleri: Gözden Geçir + oluştur'u seçin.

Dağıtımı gözden geçirme

Gözden geçirme bölümünde, önceki iki bölümde yaptığınız seçimlere göre oluşturulan JSON dağıtım bildirimi gösterilir. Eklemediğiniz bildirilen iki modül de vardır: $edgeAgent ve $edgeHub. Bu iki modül IoT Edge çalışma zamanını oluşturur ve her dağıtımda varsayılan olarak gereklidir.

Dağıtım bilgilerinizi gözden geçirin ve Oluştur'u seçin.

Dağıtımınızı doğrulama

Dağıtımı oluşturduktan sonra IoT hub'ınızın Cihazlar sayfasına dönersiniz.

  1. Ayrıntılarını açmak için dağıtımla hedeflediğiniz IoT Edge cihazını seçin.
  2. Cihaz ayrıntılarında blob depolama modülünün hem Dağıtımda belirtilen hem de Cihaz tarafından bildirilen olarak listelendiğini doğrulayın.

Modülün cihazda başlatılması ve ardından IoT Hub'a geri bildirilmesi birkaç dakika sürebilir. Güncelleştirilmiş durumu görmek için sayfayı yenileyin.

Visual Studio Code'dan dağıtma

Azure IoT Edge, uç çözümler geliştirmenize yardımcı olmak için Visual Studio Code'da şablonlar sağlar. Blob depolama modülüyle yeni bir IoT Edge çözümü oluşturmak ve dağıtım bildirimini yapılandırmak için aşağıdaki adımları kullanın.

Önemli

Azure IoT Edge Visual Studio Code uzantısı bakım modundadır.

  1. Komut Paleti Görüntüle'yi>seçin.

  2. Komut paletinde Azure IoT Edge: New IoT Edge solution komutunu girin ve çalıştırın.

    Yeni IoT Edge Çözümünü çalıştırmayı gösteren ekran görüntüsü.

    Çözümünüzü oluşturmak için komut paletindeki yönergeleri izleyin.

    Alan Değer
    Klasör seçin Çözüm dosyalarını oluşturmak için Visual Studio Code geliştirme makinenizde konumu seçin.
    Çözüm adı sağlayın Çözümünüz için açıklayıcı bir ad girin veya varsayılan EdgeSolution'i kabul edin.
    Modül şablonunu seçin Var Olan Modülü seçin (Tam görüntü URL'sini girin).
    Modül adı sağlayın Modülünüz için azureblobstorageoniotedge gibi küçük harfli bir ad girin.

    IoT Edge'de Azure Blob Depolama modülü için küçük harfli bir ad kullanmak önemlidir. IoT Edge modüllere başvururken büyük/küçük harfe duyarlıdır ve Depolama SDK'sı varsayılan olarak küçük harf olarak ayarlanır.
    Modül için Docker görüntüsü sağlama Görüntü URI'sini belirtin: mcr.microsoft.com/azure-blob-storage:latest

    Visual Studio Code sağladığınız bilgileri alır, bir IoT Edge çözümü oluşturur ve ardından yeni bir pencerede yükler. Çözüm şablonu, blob depolama modülü görüntünüzü içeren bir dağıtım bildirimi şablonu oluşturur, ancak modülün oluşturma seçeneklerini yapılandırmanız gerekir.

  3. Yeni çözüm çalışma alanınızda deployment.template.json açın ve modüller bölümünü bulun. Aşağıdaki yapılandırma değişikliklerini yapın:

    1. Aşağıdaki kodu createOptions kopyalayıp blob depolama modülü alanına yapıştırın:

      
      ```json
      "Env":[
       "LOCAL_STORAGE_ACCOUNT_NAME=<local storage account name>",
       "LOCAL_STORAGE_ACCOUNT_KEY=<local storage account key>"
      ],
      "HostConfig":{
        "Binds": ["<mount>"],
        "PortBindings":{
          "11002/tcp": [{"HostPort":"11002"}]
        }
      }
      

      Visual Studio Code'da createOptions modülünün nasıl güncelleştirilacağını gösteren ekran görüntüsü.

  4. değerini anımsayabileceğiniz bir adla değiştirin <local storage account name> . Hesap adları 3 ile 24 karakter uzunluğunda ve küçük harfler ve sayılar olmalıdır. Boşluk yok.

  5. değerini 64 baytlık base64 anahtarıyla değiştirin <local storage account key> . GeneratePlus gibi araçlarla bir anahtar oluşturabilirsiniz. Blob depolamaya diğer modüllerden erişmek için bu kimlik bilgilerini kullanırsınız.

  6. değerini kapsayıcı işletim sisteminize göre değiştirin <mount> . IoT Edge cihazınızda blob modülünün verilerini depolamasını istediğiniz dizinin adını veya mutlak yolunu belirtin. Depolama bağlaması, cihazınızda sağladığınız bir konumu modüldeki belirli bir konuma eşler.

    Linux kapsayıcıları için biçim <, depolama yolunuz veya biriminiz>:/blobroot'tur. Örneğin:

    Önemli

    • IoT Edge'de Blob Depolama modülündeki belirli bir konuma işaret eden depolama bağlama değerinin ikinci yarısını değiştirmeyin. Depolama bağlaması her zaman Linux kapsayıcıları için :/blobroot ile bitmelidir.

    • IoT Edge modül kapsayıcılarına bağlı birimleri kaldırmaz. Bu davranış, verilerin yükseltme senaryoları gibi kapsayıcı örnekleri arasında kalıcı hal almasına izin verdiğinden tasarım gereğidir. Ancak, bu birimler kullanılmamış durumda bırakılırsa, disk alanı tükenmesine ve ardından oluşabilecek sistem hatalarına yol açabilir. Senaryonuzda docker birimleri kullanıyorsanız, özellikle üretim senaryolarında kullanılmayan birimleri kaldırmak için docker volume prune ve docker volume rm gibi docker araçlarını kullanmanızı öneririz.

  7. deployment.template.json dosyasına aşağıdaki JSON dosyasını ekleyerek deviceToCloudUploadProperties ve deviceAutoDeleteProperties modülünüzü yapılandırın. Her özelliği uygun bir değerle yapılandırın ve dosyayı kaydedin. IoT Edge simülatörünü kullanıyorsanız, değerleri bu özellikler için ilgili ortam değişkenlerine ayarlayın. Bu değişkenleri deviceToCloudUploadProperties ve deviceAutoDeleteProperties'in açıklama bölümünde bulabilirsiniz

    "<your azureblobstorageoniotedge module name>":{
      "properties.desired": {
        "deviceAutoDeleteProperties": {
          "deleteOn": <true, false>,
          "deleteAfterMinutes": <timeToLiveInMinutes>,
          "retainWhileUploading": <true, false>
        },
        "deviceToCloudUploadProperties": {
          "uploadOn": <true, false>,
          "uploadOrder": "<NewestFirst, OldestFirst>",
          "cloudStorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>;EndpointSuffix=<your end point suffix>",
          "storageContainersForUpload": {
            "<source container name1>": {
              "target": "<target container name1>"
            }
          },
          "deleteAfterUpload": <true, false>
        }
      }
    }
    

    Visual Studio Code'da azureblobstorageoniotedge için istenen özelliklerin nasıl ayarlandığını gösteren ekran görüntüsü.

    Modülünüz dağıtıldıktan sonra deviceToCloudUploadProperties ve deviceAutoDeleteProperties yapılandırma hakkında bilgi için bkz . Modül İkizini Düzenleme. Kapsayıcı oluşturma seçenekleri, yeniden başlatma ilkesi ve istenen durum hakkında daha fazla bilgi için bkz . EdgeAgent istenen özellikler.

  8. deployment.template.json dosyasını kaydedin.

  9. deployment.template.json sağ tıklayın ve IoT Edge dağıtım bildirimi oluştur'a tıklayın.

  10. Visual Studio Code, deployment.template.json sağladığınız bilgileri alır ve yeni bir dağıtım bildirim dosyası oluşturmak için kullanır. Dağıtım bildirimi, çözüm çalışma alanınızdaki yeni bir yapılandırma klasöründe oluşturulur. Bu dosyayı aldıktan sonra Visual Studio Code'dan Azure IoT Edge modüllerini dağıtma veya Azure CLI 2.0 ile Azure IoT Edge modüllerini dağıtma adımlarını izleyebilirsiniz.

Birden çok modül örneği dağıtma

IoT Edge modülünde Azure Blob Depolama birden çok örneğini dağıtmak istiyorsanız farklı bir depolama yolu sağlamanız ve modülün HostPort bağlandığını değeri değiştirmeniz gerekir. Blob depolama modülleri her zaman kapsayıcıda 11002 numaralı bağlantı noktasını kullanıma sunar, ancak konakta hangi bağlantı noktasına bağlı olduğunu bildirebilirsiniz.

Değeri değiştirmek HostPort için Kapsayıcı Oluşturma Seçeneklerini (Azure portalında) veya createOptions alanını (Visual Studio Code'daki deployment.template.json dosyasında) düzenleyin:

"PortBindings":{
  "11002/tcp": [{"HostPort":"<port number>"}]
}

Ek blob depolama modüllerine bağlandığınızda, uç noktayı güncelleştirilmiş ana bilgisayar bağlantı noktasına işaret eden şekilde değiştirin.

Proxy desteğini yapılandırma

Kuruluşunuz bir ara sunucu kullanıyorsa edgeAgent ve edgeHub çalışma zamanı modülleri için ara sunucu desteğini yapılandırmanız gerekir. Bu işlem iki görev içerir:

  • Cihazda çalışma zamanı daemon'larını ve IoT Edge aracısını yapılandırın.
  • Dağıtım bildirimi JSON dosyasındaki modüller için HTTPS_PROXY ortam değişkenini ayarlayın.

Bu işlem, Bir IoT Edge cihazını ara sunucu üzerinden iletişim kuracak şekilde yapılandırma başlığında açıklanmıştır.

Buna ek olarak, blob depolama modülü bildirim dağıtım dosyasındaki HTTPS_PROXY ayarını da gerektirir. Dağıtım bildirimi dosyasını doğrudan düzenleyebilir veya Azure portalını kullanabilirsiniz.

  1. Azure portalında IoT Hub'ınıza gidin ve Cihaz yönetimi menüsünün altında Cihazlar'ı seçin

  2. Yapılandırılan modülü içeren cihazı seçin.

  3. Modülleri Ayarlama'yı seçin.

  4. Sayfanın IoT Edge Modülleri bölümünde blob depolama modülünü seçin.

  5. IoT Edge Modülünü Güncelleştir sayfasında Ortam Değişkenleri sekmesini seçin.

  6. Ad ve Değer için proxy URL'niz için ekleyinHTTPS_PROXY.

    Belirtilen değerleri girebileceğiniz IoT Edge Modülünü Güncelleştir bölmesini gösteren ekran görüntüsü.

  7. Güncelleştir'i ve ardından Gözden Geçir + Oluştur'u seçin.

  8. Dağıtım bildiriminde ara sunucu modüle eklendi bölümüne bakın ve Oluştur'u seçin.

  9. Cihaz ayrıntıları sayfasından modülü seçerek ayarı doğrulayın ve IoT Edge Modülleri Ayrıntıları sayfasının alt kısmında Ortam Değişkenleri sekmesini seçin.

    Ortam Değişkenleri sekmesini gösteren ekran görüntüsü.

Sonraki adımlar

IoT Edge'de Azure Blob Depolama hakkında daha fazla bilgi edinin.

Dağıtım bildirimlerinin nasıl çalıştığı ve nasıl oluşturulacağı hakkında daha fazla bilgi için bkz . IoT Edge modüllerinin nasıl kullanılabileceğini, yapılandırılabileceğini ve yeniden kullanılabileceğini anlama.