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

Şunlar için geçerlidir:IoT Edge 1.1 IoT Edge 1.1 IoT Edge 1.2 onay işareti IoT Edge 1.2IoT Edge 1.3 onay işareti IoT Edge 1.3 IoT Edge 1.4 onay işareti IoT Edge 1.4

Modülleri bir IoT Edge cihaza dağıtmanın çeşitli yolları vardır ve hepsi IoT Edge modüllerde Azure Blob Depolama için çalışır. En basit iki yöntem, Azure portal veya Visual Studio Code şablonlarını kullanmaktır.

Önkoşullar

Azure portal dağıtma

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

Cihazınızı seçin

  1. Azure portal oturum açın ve IoT hub'ınıza gidin.
  2. Menüden IoT Edge seçin.
  3. Cihaz listesinden hedef cihazın kimliğine tıklayın.
  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 bir dağıtım bildirimi oluşturma işleminde size yol gösteren bir sihirbaz vardır. Sekmeler halinde düzenlenmiş üç adım vardır: Modüller, Rotalar ve Gözden Geçir + Oluştur.

Modül ekle

  1. Sayfanın IoT Edge Modüller bölümünde Ekle açılan menüsüne tıklayın ve IoT Edge Modülü'ne tıklayarak IoT Edge Modülü Ekle sayfasını görüntüleyin.

  2. Modül 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

    I o T 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ı varsayılan olarak küçük harf kullanır. Azure Market modülün adı AzureBlobStorageonIoTEdge olsa da, adı küçük harfle değiştirmek IoT Edge modüldeki 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.

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

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

    {
      "Env":[
        "LOCAL_STORAGE_ACCOUNT_NAME=<your storage account name>",
        "LOCAL_STORAGE_ACCOUNT_KEY=<your storage account key>"
      ],
      "HostConfig":{
        "Binds":[
            "<storage mount>"
        ],
        "PortBindings":{
          "11002/tcp":[{"HostPort":"11002"}]
        }
      }
    }
    
  4. Kapsayıcı Oluşturma Seçenekleri'ne kopyaladığınız JSON'u aşağıdaki bilgilerle güncelleştirin:

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

    • değerini 64 baytlık base64 tuşuyla değiştirin <your storage account key> . GeneratePlus gibi araçlarla bir anahtar oluşturabilirsiniz. Diğer modüllerden blob depolamaya erişmek için bu kimlik bilgilerini kullanacaksınız.

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

    Önemli

    • IoT Edge modülündeki Blob Depolama'da 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 ve Windows kapsayıcıları için :C:/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ı haleılmasına olanak sağladığından tasarım gereğidir. Ancak, bu birimler kullanılmamış durumda bırakılırsa disk alanı tükenmesine ve sonraki sistem hatalarına yol açabilir. Senaryonuzda docker birimleri kullanıyorsanız docker volume prune ve docker volumerm gibi docker araçlarını kullanarak özellikle üretim senaryolarında kullanılmayan birimleri kaldırmanızı öneririz.

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

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

    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 değerleri bu özellikler için 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 kullanılması desteklenmez. Tüm kısıtlamaları görmek için Kapsayıcı Adları'na bakı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>
      }
    }
    

    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 üzerinde Azure Blob Depolama ile verileri uçta depolama bölümüne bakındeviceToCloudUploadProperties.

    DeviceToCloudUploadProperties ve deviceAutoDeleteProperties modülünüzü dağıttıktan sonra 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.

  6. Add (Ekle) seçeneğini belirleyin.

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

Yolları belirtme

Varsayılan yolları değiştirmeyin 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 IoT Edge sayfasına dönersiniz.

  1. Ayrıntılarını açmak için dağıtımla hedeflediğiniz IoT Edge cihazı seçin.
  2. Cihaz ayrıntılarında blob depolama modülünün hem Dağıtımda belirtilen hem deCihaz 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 dağıtma

Azure IoT Edge, uç çözümler geliştirmenize yardımcı olmak için Visual Studio Code'de ş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.

  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ü Çalıştır

    Çö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 geliştirme makinenizde Visual Studio Code konumunu 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 Mevcut Modülü seçin (Tam görüntü URL'sine girin).
    Modül adı sağlayın Modülünüz için azureblobstorageoniotedge gibi küçük harfli bir ad girin.

    IoT Edge modülündeki Azure Blob Depolama 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 harfe ayarlanır.
    Modül için Docker görüntüsü sağlama Görüntü URI'sini sağlayın: 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 yeni bir pencereye 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 dosyasını açın ve modüller bölümünü bulun. Aşağıdaki yapılandırma değişikliklerini yapın:

    1. Bu dağıtım için gerekli olmadığından SimulatedTemperatureSensor modülünü silin.

    2. Aşağıdaki kodu kopyalayıp alana yapıştırın createOptions :

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

      CreateOptions modülünü güncelleştirme - Visual Studio Code

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

  5. değerini 64 baytlık base64 tuşuyla değiştirin <your storage account key> . GeneratePlus gibi araçlarla bir anahtar oluşturabilirsiniz. Diğer modüllerden blob depolamaya erişmek için bu kimlik bilgilerini kullanacaksınız.

  6. değerini kapsayıcı işletim sisteminize göre değiştirin <storage 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.

    Önemli

    • IoT Edge modülünde Blob Depolama'da 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 ve Windows kapsayıcıları için :C:/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ı haleılmasına izin verdiğinden tasarım gereğidir. Ancak, bu birimler kullanılmamış durumda bırakılırsa, disk alanı tükenmesine ve sonraki sistem hatalarına yol açabilir. Senaryonuzda docker birimleri kullanıyorsanız, özellikle üretim senaryolarında kullanılmayan birimleri kaldırmak için docker birim ayıklama 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 modülünüz için deviceToCloudUploadProperties ve deviceAutoDeleteProperties'i 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>
        }
      }
    }
    

    azureblobstorageoniotedge için istenen özellikleri ayarlama - Visual Studio Code

    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, ilkeyi yeniden başlatma 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 dosyasına sağ tıklayın ve IoT Edge dağıtım bildirimi oluştur'a tıklayın.

  10. Visual Studio Code deployment.template.json dosyasında 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 azure IoT Edge modüllerini Visual Studio Code'dan dağıtma veya Azure CLI 2.0 ile Azure IoT Edge modüllerini dağıtma bölümündeki adımları 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) veya createOptions alanını (Visual Studio Code içindeki 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ş konak bağlantı noktasını işaret edecek ş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:

  • Cihazdaki ç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, IoT Edge cihazı ara sunucu üzerinden iletişim kuracak şekilde yapılandırma bölümünde açıklanmıştır.

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

  1. Azure portal iot hub'ınıza gidin ve sol bölme menüsünden IoT Edge 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ü 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 I o T Edge Modülünü Güncelleştir bölmesini gösteren ekran görüntüsü.

  7. Güncelleştir'e ve ardından Gözden Geçir + Oluştur'a tıklayın.

  8. Proxy'nin dağıtım bildirimindeki modüle eklendiğini ve Oluştur'u seçtiğini unutmayın.

  9. Cihaz ayrıntıları sayfasından modülü seçerek ayarı doğrulayın ve IoT Edge Modül 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'da 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üllerin nasıl kullanılabileceğini, yapılandırılabileceğini ve yeniden kullanılabileceğini anlama.