Azure CLI kullanarak IoT hub'ını otomatik olarak geçirme
IoT hub'ını yeni bir bölgeye, yeni katmana veya yeni bir yapılandırmaya geçirmek için Azure CLI'yi kullanın.
Bu makaledeki adımlar, aşağıdakileri yapmak istiyorsanız yararlıdır:
- Ücretsiz katmandan temel veya standart katman IoT hub'ına yükseltin.
- IoT hub'larını yeni bir bölgeye taşıma.
- Yedek olarak sahip olmak için IoT hub'ı durum bilgilerini dışarı aktarın.
- IoT hub'ının bölüm sayısını artırın.
- Üretim ortamı yerine geliştirme için bir merkez ayarlayın.
Otomatik ve el ile geçiş adımlarını karşılaştırma
Bu makalenin sonucu, Azure Resource Manager şablonlarını kullanarak ancak farklı bir işlemle Azure IoT hub'ını geçirme işlemine benzer. Başlamadan önce, senaryonuz için hangi işlemin doğru olduğuna karar verin.
Azure CLI işlemi (bu makale):
- Cihaz kayıt defterinizi, yönlendirme ve uç nokta bilgilerinizi ve IoT Edge dağıtımları veya otomatik cihaz yönetimi yapılandırmaları gibi diğer yapılandırma ayrıntılarını geçirir.
- Az sayıda cihazı (örneğin, 10.000'e kadar) geçirmek daha kolaydır.
- Azure Depolama hesabı gerektirmez.
- Yönlendirme ve dosya yükleme uç noktaları için bağlantı dizelerini toplar ve bunları ARM şablonu çıkışına ekler.
El ile gerçekleştirilen işlem:
- Cihaz kayıt defterinizi, yönlendirme ve uç nokta bilgilerinizi geçirir. Yeni IoT hub'ında diğer yapılandırma ayrıntılarını el ile yeniden oluşturmanız gerekir.
- Çok sayıda cihazı (örneğin, 100.000'den fazla) geçirmek için daha hızlıdır.
- Cihaz kayıt defterini aktarmak için bir Azure Depolama hesabı kullanır.
- ARM şablonu çıkışından yönlendirme ve dosya yükleme uç noktalarının bağlantı dizelerini temizler ve bunları el ile yeniden eklemeniz gerekir.
Ön koşullar
Azure CLI
Bu makalede açıklanan özellikler için azure-iot uzantısının 0.20.0 veya daha yeni bir sürümü gerekir. Uzantı sürümünüzü denetlemek için komutunu çalıştırın
az --version
. Uzantınızı güncelleştirmek için komutunu çalıştırınaz extension update --name azure-iot
.Eski azure-cli-iot-ext uzantısı hala yüklüyse , azure-iot uzantısını eklemeden önce bu uzantıyı kaldırın.
IoT hub durumu
IoT hub'ının durumunu geçirme hakkında konuştuğumuzda üç yönün birleşiminden bahsediyoruz:
Azure Resource Manager (ARM) kaynakları. Bu özellik, kaynak şablonunda tanımlanabilir her şeydir ve kaynak şablonunu Azure portal IoT hub'ınızdan dışarı aktardıysanız elde ettiğiniz bilgilerle aynıdır. Azure Resource Manager yönünün bir parçası olarak yakalanan bilgiler şunları içerir:
- Yerleşik olay hub'larının saklama süresi
- Sertifikalar
- Buluttan cihaza özellikler
- Cihaz SAS'sini devre dışı bırakma
- Yerel kimlik doğrulamayı devre dışı bırakma
- Dosya karşıya yükleme bildirimlerini etkinleştirme
- Dosya karşıya yükleme depolama uç noktası
- Kimlikler
- Kullanıcı tarafından atanan kimlikler
- Sistem tarafından atanan kimlikler (etkin veya devre dışı)
- Ağ kuralı kümeleri
- Yönlendirme
- Özel uç noktalar
- Geri dönüş yolu
- Yollar
- Etiketler
Yapılandırma. Bu özellik, BIR IOT hub'ının ARM şablonunda temsililmeyen yönleri içindir. Özellikle, bu özellik otomatik cihaz yönetimi yapılandırmalarını ve IoT Edge dağıtımlarını kapsar.
Aygıtları. Bu özellik, cihaz kayıt defterinizdeki bilgileri temsil eder ve bu bilgiler şunlardır:
- Cihaz kimlikleri ve ikizler
- Modül kimlikleri ve ikizler
Burada listelenmeyen IoT Hub özellikleri veya yapılandırmaları doğru şekilde dışarı aktarılamayabilir veya içeri aktarılamayabilir.
IoT hub'ının durumunu dışarı aktarma
IoT hub'ının durumunu bir JSON dosyasına aktarmak için az iot hub state export komutunu kullanın.
Tek bir komutta hem dışarı aktarma hem de içeri aktarma adımlarını çalıştırmak istiyorsanız, bu makalenin devamında yer alan IoT hub'ını geçirme bölümüne bakın.
IoT hub'ının durumunu dışarı aktardığınızda, dışarı aktarabileceğiniz yönleri seçebilirsiniz.
Parametre | Ayrıntılar |
---|---|
--aspects |
Dışarı aktaracak durum yönleri. Kabul edilen değerlerden birini veya daha fazlasını belirtin: arm, yapılandırmalar veya cihazlar. Bu parametre dışarıda bırakılırsa, üç yönün tümü de dışarı aktarılır. |
--state-file -f |
Durum bilgilerinin yazıldığı dosyanın yolu. |
--replace -r |
Bu parametre dahil edilirse, dışarı aktarma komutu durum dosyasının içeriğinin üzerine yazar. |
--hub-name -n Veya --login -l |
Kaynak IoT hub'ının adı (-n ) veya kaynak IoT hub'ının (-l ) bağlantı dizesi. Her ikisi de sağlanmışsa, bağlantı dizesi öncelik alır. |
--resource-group -g |
Kaynak IoT hub'ının kaynak grubunun adı. |
Aşağıdaki örnek, IoT hub'ının durumunun tüm yönlerini myHub-state adlı bir dosyaya aktarır:
az iot hub state export --hub-name myHub --state-file ./myHub-state.json
Aşağıdaki örnek, ioT hub'ının durumunun yalnızca cihazları ve Azure Resource Manager yönlerini dışarı aktarır ve var olan dosyanın içeriğinin üzerine yazar:
az iot hub state export --hub-name myHub --state-file ./myHub-state.json --aspects arm devices --replace
Uç noktaları dışarı aktarma
IoT hub'ının Azure Resource Manager yönünü dışarı aktarmayı seçerseniz, dışarı aktarma komutu anahtar tabanlı kimlik doğrulamasına sahip tüm uç noktaların bağlantı dizelerini alır ve bunları çıkış ARM şablonuna ekler.
Dışarı aktarma komutu ayrıca bağlandığınız kaynağın hala mevcut olduğunu doğrulamak için tüm uç noktaları denetler. Aksi takdirde, bu uç nokta ve bu uç noktayı kullanan tüm yollar dışarı aktarılmaz.
IoT hub'ının durumunu içeri aktarma
Dışarı aktarılan bir dosyadaki durum bilgilerini yeni veya mevcut bir IoT hub'ına aktarmak için az iot hub state import komutunu kullanın.
Tek bir komutta hem dışarı aktarma hem de içeri aktarma adımlarını çalıştırmak istiyorsanız, bu makalenin devamında yer alan IoT hub'ını geçirme bölümüne bakın.
Parametre | Ayrıntılar |
---|---|
--aspects |
İçeri aktarılacağınız durum özellikleri. Kabul edilen değerlerden birini veya daha fazlasını belirtin: arm, yapılandırmalar veya cihazlar. Bu parametre dışarıda bırakılırsa, üç yönün tümü de içeri aktarılır. |
--state-file -f |
Dışarı aktarılan durum dosyasının yolu. |
--replace -r |
Bu parametre dahil edilirse, içeri aktarma komutu hedef hub'ın geçerli durumunu siler. |
--hub-name -n Veya --login -l |
Hedef IoT hub'ının adı (-n ) veya hedef IoT hub'ının (-l ) bağlantı dizesi. Her ikisi de sağlanmışsa, bağlantı dizesi öncelik alır. |
--resource-group -g |
Hedef IoT hub'ının kaynak grubunun adı. |
Aşağıdaki örnek, mevcut değilse oluşturulan yeni bir IoT hub'ına tüm yönleriyle içeri aktarır:
az iot hub state import --hub-name myNewHub --state-file ./myHub-state.json
Aşağıdaki örnek, mevcut olması gereken yeni bir IoT hub'ına yalnızca cihazları ve yapılandırma yönlerini içeri aktarır ve mevcut cihazların ve yapılandırmaların üzerine yazar:
az iot hub state import --hub-name myNewHub --state-file ./myHub-state.json --aspects devices configurations --replace
Durum içeri aktarma ile yeni bir IoT hub'ı oluşturma
Komutunu kullanarak az iot hub state import
yeni bir IoT hub'ı oluşturabilir veya mevcut bir IoT hub'ına yazabilirsiniz.
Yeni bir IoT Hub oluşturmak istiyorsanız, içeri aktarma komutuna arm
bu özelliği eklemeniz gerekir.
arm
Komuta dahil değilse ve hedef hub yoksa, içeri aktarma komutu başarısız olur.
Hedef hub yoksa, --resource-group
içeri aktarma komutu için parametresi de gereklidir.
Mevcut IoT hub'ına durum içeri aktarma ile güncelleştirme
Hedef IoT hub'ı zaten varsa, arm
komut için az iot hub state import
bu özellik gerekli değildir. Bu yönü eklerseniz arm
, hub oluşturulduktan sonra değiştirilmeyecek aşağıdaki özellikler dışında tüm kaynak özelliklerinin üzerine yazılır:
- Konum
- SKU
- Yerleşik Event Hubs bölüm sayısı
- Veri yerleşimi
- Özellikler
--resource-group
İçeri aktarma komutunda belirtilirse ve IoT hub'ına ait geçerli kaynak grubundan farklıysa, komut zaten var olanla aynı ada sahip yeni bir hub oluşturmaya çalıştığından başarısız olur.
İçeri aktarma komutuna --replace
bayrağını eklerseniz, hub durumu karşıya yüklenmeden önce aşağıdaki IoT hub özellikleri hedef hub'dan kaldırılır:
- ARM: Hedef hub'da karşıya yüklenen tüm sertifikalar silinir. Bir sertifika varsa güncelleştirilmesi için bir etag gerekir.
- Cihazlar: Uç ve uç olmayan tüm cihazlar ve modüller silinir.
- Yapılandırmalar: Tüm ADM yapılandırmaları ve IoT Edge dağıtımları silinir.
IoT hub'ına geçiş
Bir IoT hub'ının durumunu yeni veya mevcut bir IoT hub'ına geçirmek için az iot hub state migrate komutunu kullanın.
Bu komut, dışarı ve içeri aktarma adımlarını tek bir komuta sarmalar, ancak çıkış dosyası yoktur.
IoT hub'ının durumunu dışarı aktarma ve IoT hub'ının durumunuiçeri aktarma bölümlerinde açıklanan tüm yönergeler ve sınırlamalar komut için state migrate
de geçerlidir.
Çok sayıda cihazla (örneğin, birkaç yüz veya birkaç bin) bir cihaz kayıt defterini geçiriyorsanız, geçiş komutunu çalıştırmak yerine dışarı ve içeri aktarma komutlarını ayrı ayrı çalıştırmayı daha kolay ve hızlı bulabilirsiniz.
Parametre | Ayrıntılar |
---|---|
--aspects |
Geçirilen durum özellikleri. Kabul edilen değerlerden birini veya daha fazlasını belirtin: arm, yapılandırmalar veya cihazlar. Bu parametre dışarıda bırakılırsa, üç yönü de geçirilir. |
--replace -r |
Bu parametre dahil edilirse, geçiş komutu hedef hub'ın geçerli durumunu siler. |
--destination-hub --dh Veya --destination-hub-login --dl |
Hedef IoT hub'ının adı (--dh ) veya hedef IoT hub'ının (--dl ) bağlantı dizesi. Her ikisi de sağlanmışsa bağlantı dizesi öncelik alır. |
--destination-resource-group --dg |
Hedef IoT hub'ının kaynak grubunun adı. Hedef hub yoksa hedef kaynak grubu gereklidir. |
--origin-hub --oh Veya --origin-hub-login --ol |
Kaynak IoT hub'ının adı (--oh ) veya kaynak IoT hub'ının (--ol ) bağlantı dizesi. Her ikisi de sağlanmışsa bağlantı dizesi öncelik alır. Azure CLI oturumunda oturum açmak zorunda kalmamak için bağlantı dizesini kullanın. |
--origin-resource-group --og |
Kaynak IoT hub'ının kaynak grubunun adı. |
Aşağıdaki örnek, kaynak hub'ın tüm yönlerini hedef hub'a geçirir ve bu da yoksa oluşturulur:
az iot hub state migrate --origin-hub myHub --origin-resource-group myGroup --destination-hub myNewHub --destination-resource-group myNewGroup
Geçiş sorunlarını giderme
Cihazları veya yapılandırmaları dışarı veya içeri aktaramıyorsanız bu özelliklere erişiminiz olup olmadığını denetleyin. Erişiminizi doğrulamanın bir yolu veya az iot hub configuration list
komutlarını az iot hub device-identity list
çalıştırmaktır.
az iot hub state migrate
Komut başarısız olursa dışarı ve içeri aktarma komutlarını ayrı ayrı çalıştırmayı deneyin. İki komut yalnızca geçiş komutuyla aynı işleve neden olur, ancak bunları ayrı olarak çalıştırarak dışarı aktarma komutundan oluşturulan durum dosyalarını gözden geçirebilirsiniz.
Sonraki adımlar
IoT hub'ında kimlik kayıt defterinde toplu işlemler gerçekleştirme hakkında daha fazla bilgi için bkz. IoT Hub cihaz kimliklerini içeri ve dışarı aktarma.