Hızlı Başlangıç: İlk IoT Edge modülünüzü bir sanal Linux cihazına dağıtma
Ş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.
Kapsayıcılı kodu bir sanal Linux IoT Edge cihazına dağıtarak bu hızlı başlangıçta Azure IoT Edge'i test edin. IoT Edge, iş yüklerinizin daha fazlasını uçlara gönderebilmek için cihazlarınızdaki kodu uzaktan yönetmenize olanak tanır. Bu hızlı başlangıçta, IoT Edge cihazınız için hızlı bir şekilde test makinesi oluşturmanıza ve işiniz bittiğinde silmenize olanak tanıyan bir Azure sanal makinesi kullanmanızı öneririz.
Bu hızlı başlangıçta şunları yapmayı öğrenirsiniz:
- Bir IoT Hub oluşturma.
- Bir IoT Edge cihazını IoT hub'ınıza kaydetme.
- IoT Edge çalışma zamanını bir sanal cihaza yükleyin ve başlatın.
- Bir IoT Edge cihazına uzaktan modül dağıtma.
Bu hızlı başlangıçta IoT Edge cihazı olarak yapılandırılmış bir Linux sanal makinesi oluşturma adımları açıklanmıştır. Ardından Azure portalından cihazınıza bir modül dağıtırsınız. Bu hızlı başlangıçta kullanılan modül sıcaklık, nem ve basınç verileri oluşturan bir simülasyon sensörüdür. Diğer Azure IoT Edge öğreticileri, iş içgörüleri için simülasyon verilerini analiz eden ek modüller dağıtarak burada yaptığınız çalışmayı derler.
Etkin bir Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önkoşullar
Ortamınızı Azure CLI için hazırlayın.
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
Bulut kaynakları:
Bu hızlı başlangıçta kullandığınız tüm kaynakları yönetmek için kullanacağınız bir kaynak grubu. Bu hızlı başlangıç ve aşağıdaki öğreticiler boyunca IoTEdgeResources örnek kaynak grubu adını kullanırız.
az group create --name IoTEdgeResources --location westus2
IoT hub oluşturma
Azure CLI ile bir IoT hub'ı oluşturarak hızlı başlangıcı başlatın.
IoT Hub’ın ücretsiz düzeyi bu hızlı başlangıç için kullanılabilir. Geçmişte IoT Hub kullandıysanız ve zaten bir hub'ını oluşturduysanız bu IoT hub'ını kullanabilirsiniz.
Aşağıdaki kod, IoTEdgeResources kaynak grubunda ücretsiz bir F1 hub’ı oluşturur. değerini IoT hub'ınız için benzersiz bir adla değiştirin {hub_name}
. IoT Hub'ı oluşturmak birkaç dakika sürebilir.
az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2
Aboneliğinizde zaten bir ücretsiz hub olduğu için hata alırsanız, SKU değerini S1 olarak değiştirin. Her aboneliğin yalnızca bir ücretsiz IoT hub’ı olabilir. IoT Hub adının kullanılamadığını belirten bir hata alırsanız, başka birinin zaten bu ada sahip bir hub'ı olduğu anlamına gelir. Yeni bir ad deneyin.
IoT Edge cihazını kaydetme
Yeni oluşturulan IoT hub'ına bir IoT Edge cihazı kaydedin.
IoT Hub'ınızla iletişim kurabilmesi için IoT Edge cihazınız için bir cihaz kimliği oluşturun. Cihaz kimliği bulutta kalır ve fiziksel cihazla cihaz kimliği arasında bağlantı kurmak için benzersiz bir bağlantı dizesi kullanmanız gerekir.
IoT Edge cihazları tipik IoT cihazlarından farklı davrandığından ve yönetilebildiğinden, bu kimliği bayrağına sahip --edge-enabled
bir IoT Edge cihazı için olarak bildirin.
Azure Cloud Shell'de aşağıdaki komutu girerek hub'ınızda myEdgeDevice adlı bir cihaz oluşturun.
az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}
iothubowner ilke anahtarları hakkında hata alırsanız Cloud Shell'inizin azure-iot uzantısının en son sürümünü çalıştırdığından emin olun.
Fiziksel cihazınızı IoT Hub'daki kimliğine bağlayan cihazınızın bağlantı dizesi görüntüleyin. IoT hub'ınızın adını, cihazınızın adını ve ardından ikisi arasındaki bağlantıların kimliğini doğrulayan paylaşılan anahtarı içerir. IoT Edge cihazınızı ayarlarken sonraki bölümde bu bağlantı dizesi yeniden başvuracağız.
az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
Örneğin, bağlantı dizesi benzer
HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE_SHARED_ACCESS_KEY>
görünmelidir.
IoT Edge cihazınızı yapılandırma
Üzerinde Azure IoT Edge çalışma zamanı bulunan bir sanal makine oluşturun.
IoT Edge çalışma zamanı tüm IoT Edge cihazlarına dağıtılır. Üç bileşeni vardır. IoT Edge güvenlik daemon'ı ioT Edge aracısını başlatarak bir IoT Edge cihazı her önyüklenip önyüklenmesini başlatır. IoT Edge aracısı, IoT Edge hub'ı dahil olmak üzere IoT Edge cihazındaki modüllerin dağıtımını ve izlenmesini kolaylaştırır. IoT Edge hub'ı IoT Edge cihazındaki modüller ve cihaz ile IoT Hub'ı arasındaki iletişimi yönetir.
Çalışma zamanı yapılandırması sırasında cihaz bağlantı dizesi sağlamanız gerekir. Bu, Azure CLI'dan aldığınız dizedir. Bu dize, fiziksel cihazınızı Azure'daki IoT Edge cihaz kimliğiyle ilişkilendirir.
IoT Edge cihazını dağıtma
Bu bölümde yeni bir sanal makine oluşturmak ve üzerine IoT Edge çalışma zamanını yüklemek için bir Azure Resource Manager şablonu kullanılmaktadır. Bunun yerine kendi Linux cihazınızı kullanmak istiyorsanız, Tek bir Linux IoT Edge cihazını el ile sağlama makalesindeki yükleme adımlarını izleyebilir ve bu hızlı başlangıca dönebilirsiniz.
Önceden oluşturulmuş iotedge-vm-deploy şablonunu temel alarak IoT Edge cihazınızı oluşturmak için Azure'a Dağıt düğmesini veya CLI komutlarını kullanın.
IoT Edge Azure Resource Manager şablonunu kullanarak dağıtın.
Bash veya Cloud Shell kullanıcıları için aşağıdaki komutu bir metin düzenleyicisine kopyalayın, yer tutucu metni bilgilerinizle değiştirin ve bash veya Cloud Shell pencerenize kopyalayın:
az deployment group create \ --resource-group IoTEdgeResources \ --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \ --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' \ --parameters adminUsername='azureUser' \ --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) \ --parameters authenticationType='password' \ --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
PowerShell kullanıcıları için aşağıdaki komutu PowerShell pencerenize kopyalayın ve yer tutucu metni kendi bilgilerinizle değiştirin:
az deployment group create ` --resource-group IoTEdgeResources ` --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" ` --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' ` --parameters adminUsername='azureUser' ` --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) ` --parameters authenticationType='password' ` --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
Bu şablon aşağıdaki parametreleri alır:
Parametre | Açıklama |
---|---|
resource-group | Kaynakların oluşturulacağı kaynak grubu. Bu makale boyunca kullandığımız varsayılan IoTEdgeResources'ları kullanın veya aboneliğinizdeki mevcut bir kaynak grubunun adını belirtin. |
template-uri | Kullanmakta olduğumuz Resource Manager şablonunun işaretçisi. |
dnsLabelPrefix | Sanal makinenin konak adını oluşturmak için kullanılacak bir dize. Yer tutucu metni sanal makinenizin adıyla değiştirin. |
adminUsername | Sanal makinenin yönetici hesabı için bir kullanıcı adı. azureUser örneğini kullanın veya yeni bir kullanıcı adı sağlayın. |
deviceConnectionString | Sanal makinede IoT Edge çalışma zamanını yapılandırmak için kullanılan IoT Hub'daki cihaz kimliğinden bağlantı dizesi. Bu parametredeki CLI komutu sizin için bağlantı dizesi alır. Yer tutucu metni IoT hub'ınızın adıyla değiştirin. |
authenticationType | Yönetici hesabının kimlik doğrulama yöntemi. Bu hızlı başlangıçta parola kimlik doğrulaması kullanılır, ancak bu parametreyi sshPublicKey olarak da ayarlayabilirsiniz. |
adminPasswordOrKey | Yönetici hesabının SSH anahtarının parolası veya değeri. Yer tutucu metni güvenli bir parolayla değiştirin. Parolanız en az 12 karakter uzunluğunda olmalı ve aşağıdakilerden üçüne sahip olmalıdır: küçük harfler, büyük harfler, rakamlar ve özel karakterler. |
Dağıtım tamamlandıktan sonra CLI'da sanal makineye bağlanmak için SSH bilgilerini içeren JSON biçimli bir çıkış almanız gerekir. Çıkışlar bölümünün genel SSH girişinin değerini kopyalayın. Örneğin, SSH komutunuz gibi ssh azureUser@edge-vm.westus2.cloudapp.azure.com
görünmelidir.
IoT Edge çalışma zamanı durumunu görüntüleme
Bu hızlı başlangıçtaki komutların geri kalanı IoT Edge cihazınızın kendisinde gerçekleşir, böylece cihazda neler olduğunu görebilirsiniz. Sanal makine kullanıyorsanız, ayarladığınız yönetici kullanıcı adını ve dağıtım komutu tarafından çıktısı alınan DNS adını kullanarak bu makineye bağlanın. DNS adını Azure portalındaki sanal makinenizin genel bakış sayfasında da bulabilirsiniz. Sanal makinenize bağlanmak için aşağıdaki komutu kullanın. ve {DNS name}
değerlerini kendi değerlerinizle değiştirin{admin username}
.
ssh {admin username}@{DNS name}
Sanal makinenize bağlandıktan sonra, çalışma zamanının IoT Edge cihazınıza başarıyla yüklendiğini ve yapılandırıldığını doğrulayın.
IoT Edge'in çalışıp çalışmadığını denetleyin. Aşağıdaki komut, IoT Edge çalışıyorsa Tamam durumunu döndürmelidir veya herhangi bir hizmet hatası vermelidir.
sudo iotedge system status
İpucu
iotedge
komutlarını çalıştırmak için yükseltilmiş ayrıcalıklara ihtiyacınız olacaktır. Makinenizdeki oturumu kapattıktan sonra IoT Edge çalışma zamanını yükleyip oturum açtığınızda izinleriniz otomatik olarak güncelleştirilir. O zamana kadar komutların önünde kullanınsudo
.Hizmetle ilgili sorunları gidermeniz gerekirse hizmet günlüklerini alın.
sudo iotedge system logs
IoT Edge cihazınızda çalışan tüm modülleri görüntüleyin. Hizmet ilk kez başlatıldığı için yalnızca edgeAgent modülünün çalıştığını göreceksiniz. edgeAgent modülü varsayılan olarak çalışır ve cihazınıza dağıttığınız ek modüllerin yüklenmesine ve başlatılmasına yardımcı olur.
sudo iotedge list
Artık IoT Edge cihazınız yapılandırıldı. Bulutta dağıtılan modülleri çalıştırmak için hazır.
Modül dağıtma
Azure IoT Edge cihazınızı, IoT Hub'ına telemetri verileri gönderecek bir modül dağıtmak için buluttan yönetin.
Azure IoT Edge'in önemli özelliklerinden biri, buluttan IoT Edge cihazlarınıza kod dağıtmaktır. IoT Edge modülleri , kapsayıcı olarak uygulanan yürütülebilir paketlerdir. Bu bölümde, Microsoft Yapıt Kayıt Defteri IoT Edge Modülleri bölümünden önceden oluşturulmuş bir modül dağıtacaksınız.
Bu bölümde dağıttığınız modül bir algılayıcının simülasyonunu oluşturur ve oluşturulan verileri gönderir. Bu modül, IoT Edge'i kullanmaya başlarken yararlı bir kod parçasıdır çünkü sanal verileri geliştirme ve test için kullanabilirsiniz. Bu modülün tam olarak ne yaptığını görmek istiyorsanız, simülasyon sıcaklık algılayıcısı kaynak kodunu görüntüleyebilirsiniz.
İlk modülünüzü dağıtmak için bu adımları izleyin.
Soldaki menüden Cihaz Yönetimi altında Cihazlar'ı seçin.
Listeden hedef IoT Edge cihazının cihaz kimliğini seçin.
Yeni bir IoT Edge cihazı oluşturduğunuzda, azure portalında durum kodu
417 -- The device's deployment configuration is not set
görüntülenir. Bu durum normaldir ve cihazın modül dağıtımı almaya hazır olduğu anlamına gelir.Üst çubukta Modülleri Ayarla'yı seçin.
Cihazınızda çalıştırmak istediğiniz modülleri seçin. Kendi oluşturduğunuz modüllerden veya kapsayıcı kayıt defterindeki görüntülerden birini seçebilirsiniz. Bu hızlı başlangıçta, Microsoft kapsayıcı kayıt defterinden bir modül dağıtacaksınız.
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ı SimulatedTemperatureSensor
Görüntü URI'si mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest
Yeniden başlatma ilkesi her zaman İstenen durum çalışıyor Yolları yapılandırmaya devam etmek için İleri: Yollar'ı seçin.
Sanal sıcaklık modülündeki tüm iletileri IoT Hub'a gönderen bir yol ekleyin.
Ayar Değer Veri Akışı Adı SimulatedTemperatureSensorToIoTHub
Değer FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
Sonraki: Gözden geçirme ve oluşturma’yı seçin.
JSON dosyasını gözden geçirin ve oluştur'u seçin. JSON dosyası, IoT Edge cihazınıza dağıttığınız tüm modülleri tanımlar.
Not
IoT Edge cihazına yeni bir dağıtım gönderdiğinizde cihazınıza herhangi bir şey gönderilmez. Bunun yerine cihaz, IoT Hub'ı düzenli olarak sorgulayarak yeni yönergeler olup olmadığını denetler. Güncelleştirilmiş bir dağıtım bildirimi bulması halinde cihaz yeni dağıtımla ilgili bilgileri kullanarak buluttaki modül görüntülerini çeker ve modülleri yerel ortamda çalıştırmaya başlar. Bu işlem birkaç dakika sürebilir.
Modül dağıtım ayrıntılarını oluşturduktan sonra sihirbaz sizi cihaz ayrıntıları sayfasına döndürür. Modüller sekmesinde dağıtım durumunu görüntüleyin.
Üç modül görmeniz gerekir: $edgeAgent, $edgeHub ve SimulatedTemperatureSensor. Modüllerden biri veya daha fazlası Dağıtımda Belirtilen altında Evet'e sahipse ancak Cihaz tarafından bildirildi altında yoksa, IoT Edge cihazınız bunları başlatmaya devam eder. Birkaç dakika bekleyin ve sayfayı yenileyin.
Modülleri dağıtırken sorun yaşıyorsanız bkz . Azure portalından IoT Edge cihazlarında sorun giderme.
Oluşturulan verileri görüntüleme
Bu hızlı başlangıçta, yeni bir IoT Edge cihazı oluşturdunuz ve üzerine IoT Edge çalışma zamanını yüklediniz. Ardından, cihazda değişiklik yapmak zorunda kalmadan cihazda çalıştırılacak bir IoT Edge modülü dağıtmak için Azure portalını kullandınız.
Bu durumda, gönderdiğiniz modül daha sonra test için kullanabileceğiniz örnek ortam verileri oluşturur. Simülasyon algılayıcısı hem makineyi hem de makinenin etrafındaki ortamı izler. Örneğin bu sensör bir sunucu odasında, fabrika sahasında veya rüzgar türbininde olabilir. İletide ortam sıcaklığı ve nemi, makine sıcaklığı ve basıncı ile bir zaman damgası bulunur. IoT Edge öğreticileri, analiz için test verileri olarak bu modül tarafından oluşturulan verileri kullanır.
IoT Edge cihazınızda komut istemini yeniden açın veya Azure CLI'den SSH bağlantısı kurun. Buluttan dağıtılan modülün IoT Edge cihazınızda çalıştığından emin olun:
sudo iotedge list
Sıcaklık sensörü modülünden gönderilen iletileri görüntüleyin:
sudo iotedge logs SimulatedTemperatureSensor -f
İpucu
IoT Edge komutları modül adlarına başvururken büyük/küçük harfe duyarlıdır.
Kaynakları temizleme
IoT Edge öğreticilerine devam etmek istiyorsanız bu hızlı başlangıçta kaydettiğiniz ve ayarladığınız cihazı kullanabilirsiniz. Aksi takdirde, ücretlerden kaçınmak için oluşturduğunuz Azure kaynaklarını silebilirsiniz.
Sanal makinenizi ve IoT hub’ınızı yeni bir kaynak grubunda oluşturduysanız, bu grubu ve ilişkili tüm kaynaklarını silebilirsiniz. Saklamak istediğiniz bir şey olmadığından emin olmak için kaynak grubunun içeriğini bir kez daha denetleyin. Grubun tamamını silmek istemiyorsanız, bunun yerine tek tek kaynakları silebilirsiniz.
Önemli
Silinen kaynak grupları geri alınamaz.
IoTEdgeResources grubunu kaldırın. Kaynak grubunun silinmesi birkaç dakika sürebilir.
az group delete --name IoTEdgeResources --yes
Kaynak gruplarının listesini görüntüleyerek kaynak grubunun kaldırıldığını onaylayabilirsiniz.
az group list
Sonraki adımlar
Bu hızlı başlangıçta bir IoT Edge cihazı oluşturdunuz ve cihaza kod dağıtmak için Azure IoT Edge bulut arabirimini kullandınız. Artık ortamı hakkında ham veri üreten bir test cihazınız var.
Sonraki öğreticide Azure portalından cihazınızın etkinliğini ve durumunu izlemeyi öğreneceksiniz.