IoT Edge modülünde Azure Blob Depolama'yı cihazınıza dağıtma
Şunlar için geçerlidir: IoT Edge 1.5
Önemli
IoT Edge 1.5 LTS desteklenen sürümdür. IoT Edge 1.4 LTS, 12 Kasım 2024 itibarıyla 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
IoT Edge cihazı.
Ayarlanmış bir IoT Edge cihazınız yoksa Azure sanal makinesinde bir cihaz oluşturabilirsiniz. Sanal Linux cihazı oluşturma veya Sanal Windows cihazı oluşturma için hızlı başlangıç makalelerinden birinde yer alan adımları izleyin.
Azure IoT Edge uzantısı. Visual Studio Code uzantısı için Azure IoT Edge araçları bakım modundadır.
Visual Studio Code'dan dağıtıyorsanız Azure IoT Hub uzantısı.
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
- Azure portalında oturum açın ve IoT hub'ınıza gidin.
- Cihaz yönetimi menüsünün altında Cihazlar'ı seçin.
- Listeden hedef IoT Edge cihazını seçin.
- 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
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.
Ayarlar sekmesinde modül için bir ad sağlayın ve kapsayıcı görüntüsü URI'sini belirtin:
-
IoT Edge Modülü Adı:
azureblobstorageoniotedge
-
Görüntü URI'si:
mcr.microsoft.com/azure-blob-storage:latest
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. Adı küçük harfle değiştirmek, IoT Edge modülündeki Azure Blob Depolama bağlantılarınızın kesintiye uğramamasını sağlamaya yardımcı olur.
-
IoT Edge Modülü Adı:
Kapsayıcı Oluşturma Seçenekleri sekmesini açın.
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"}] } } }
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>
. Base64 Oluşturucu 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:
- Birim bağlamayı kullan:
my-volume:/blobroot
- Bağlamayı kullan:
/srv/containerdata:/blobroot
. Kapsayıcı kullanıcısına dizin erişimi verme adımlarını izlediğinden emin olun
Ö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.
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> } }
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
storageContainersForUpload
ise, hedefe varsayılan bir ad atanır. Kapsayıcıya yüklemeyi durdurmak istiyorsanız, kapsayıcıdanstorageContainersForUpload
tamamen 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
.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.
Ekle'yi seçin.
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.
- Ayrıntılarını açmak için dağıtımla hedeflediğiniz IoT Edge cihazını seçin.
- 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.
Komut Paleti Görüntüle'yi>seçin.
Komut paletinde Azure IoT Edge: New IoT Edge solution komutunu girin ve çalıştırın.
Çö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 harfe 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.
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:
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"}] } }
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>
. Base64 Oluşturucu 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 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:
- Birim bağlamayı kullan:
my-volume:/blobroot
- Bağlamayı kullan:
/srv/containerdata:/blobroot
. Kapsayıcı kullanıcısına dizin erişimi verme adımlarını izlediğinden emin olun
Ö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.
- Birim bağlamayı kullan:
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> } } }
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.
deployment.template.json dosyasını kaydedin.
deployment.template.json sağ tıklayın ve IoT Edge dağıtım bildirimi oluştur'a tıklayın.
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 Azure CLI 2.0 ile Azure IoT Edge modüllerini dağıtma bölümünde yer alan 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ı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.
Azure portalında IoT Hub'ınıza gidin ve Cihaz yönetimi menüsünün altında Cihazlar'ı seçin
Yapılandırılan modülü içeren cihazı seçin.
Modülleri Ayarlama'yı seçin.
Sayfanın IoT Edge Modülleri bölümünde blob depolama modülünü seçin.
IoT Edge Modülünü Güncelleştir sayfasında Ortam Değişkenleri sekmesini seçin.
Ad ve Değer için proxy URL'niz için ekleyin
HTTPS_PROXY
.Güncelleştir'i ve ardından Gözden Geçir + Oluştur'u seçin.
Dağıtım bildiriminde ara sunucu modüle eklendi bölümüne bakın ve Oluştur'u seçin.
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.
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.