كيفية ترحيل مركز IoT تلقائيا باستخدام Azure CLI
استخدم Azure CLI لترحيل مركز IoT إلى منطقة جديدة أو مستوى جديد أو تكوين جديد.
الخطوات الواردة في هذه المقالة مفيدة إذا كنت تريد:
- الترقية من المستوى المجاني إلى مركز IoT أساسي أو قياسي.
- نقل مركز IoT إلى منطقة جديدة.
- تصدير معلومات حالة مركز IoT للحصول على نسخة احتياطية.
- زيادة عدد الأقسام لمركز IoT.
- قم بإعداد مركز لتطوير، بدلا من بيئة الإنتاج.
مقارنة خطوات الترحيل التلقائي واليدوي
تشبه نتيجة هذه المقالة كيفية ترحيل مركز Azure IoT باستخدام قوالب Azure Resource Manager، ولكن مع عملية مختلفة. قبل البدء، حدد العملية المناسبة للسيناريو الخاص بك.
عملية Azure CLI (هذه المقالة):
- ترحيل سجل جهازك ومعلومات التوجيه ونقطة النهاية وتفاصيل التكوين الأخرى مثل عمليات نشر IoT Edge أو تكوينات إدارة الأجهزة التلقائية.
- أسهل لترحيل أعداد صغيرة من الأجهزة (على سبيل المثال، ما يصل إلى 10,000).
- لا يتطلب حساب تخزين Azure.
- يجمع سلسلة الاتصال للتوجيه ونقاط نهاية تحميل الملفات التي تستخدم المصادقة المستندة إلى المفتاح وتضمينها في إخراج قالب ARM.
العملية اليدوية:
- ترحيل سجل جهازك ومعلومات التوجيه ونقطة النهاية. يجب عليك إعادة إنشاء تفاصيل التكوين الأخرى يدويا في مركز IoT الجديد.
- أسرع لترحيل أعداد كبيرة من الأجهزة (على سبيل المثال، أكثر من 100,000).
- يستخدم حساب تخزين Azure لنقل سجل الجهاز.
- يقوم بمسح سلسلة الاتصال للتوجيه وتحميل الملفات التي تستخدم المصادقة المستندة إلى المفتاح من إخراج قالب ARM، وتحتاج إلى إضافتها مرة أخرى يدويا.
المتطلبات الأساسية
Azure CLI
تتطلب الميزات الموضحة في هذه المقالة الإصدار 0.20.0 أو أحدث من ملحق azure-iot . للتحقق من إصدار الملحق الخاص بك، قم بتشغيل
az --version
. لتحديث الملحق الخاص بك، قم بتشغيلaz extension update --name azure-iot
.إذا كان لا يزال لديك ملحق azure-cli-iot-ext القديم مثبتا، فقم بإزالة هذا الملحق قبل إضافة ملحق azure-iot.
حالة مركز IoT
عندما نتحدث عن ترحيل حالة مركز IoT، فإننا نشير إلى مجموعة من ثلاثة جوانب:
موارد Azure Resource Manager (ARM). هذا الجانب هو كل ما يمكن تعريفه في قالب مورد، وهو نفس المعلومات التي ستحصل عليها إذا قمت بتصدير قالب المورد من مركز IoT في مدخل Microsoft Azure. تتضمن المعلومات التي تم التقاطها كجزء من جانب Azure Resource Manager ما يلي:
- وقت استبقاء مركز الأحداث المضمن
- الشهادات
- خصائص السحابة إلى الجهاز
- تعطيل SAS للجهاز
- تعطيل المصادقة المحلية
- تمكين إعلامات تحميل الملف
- نقطة نهاية تخزين تحميل الملفات
- الهويات
- الهويات المعينة من قبل المستخدم
- الهويات المعينة من قبل النظام (ممكنة أو معطلة)
- مجموعات قواعد الشبكة
- التوجيه
- نقاط النهاية المخصصة
- مسار احتياطي
- مسارات
- علامات
التكوينات. هذا الجانب مخصص لجوانب مركز IoT غير الممثلة في قالب ARM. على وجه التحديد، يغطي هذا الجانب تكوينات إدارة الأجهزة التلقائية وتوزيع IoT Edge.
Devices. يمثل هذا الجانب المعلومات الموجودة في سجل جهازك، والذي يتضمن:
- هويات الجهاز والتوائم
- هويات الوحدة النمطية والتوائم
قد لا يتم تصدير أو استيراد أي خاصية أو تكوين IoT Hub غير مدرج هنا بشكل صحيح.
تصدير حالة مركز IoT
استخدم الأمر az iot hub state export لتصدير حالة مركز IoT إلى ملف JSON.
إذا كنت تريد تشغيل كل من خطوات التصدير والاستيراد في أمر واحد، فراجع المقطع لاحقا في هذه المقالة لترحيل مركز IoT.
عند تصدير حالة مركز IoT، يمكنك اختيار الجوانب التي يجب تصديرها.
المعلمة | التفاصيل |
---|---|
--aspects |
جوانب الحالة للتصدير. حدد قيمة واحدة أو أكثر من القيم المقبولة: الذراع أو التكوينات أو الأجهزة. إذا تم ترك هذه المعلمة، تصدير جميع الجوانب الثلاثة. |
--state-file -f |
المسار إلى الملف حيث تتم كتابة معلومات الحالة. |
--replace -r |
إذا تم تضمين هذه المعلمة، فسيستبدل أمر التصدير محتويات ملف الحالة. |
--hub-name -n أو --login -l |
اسم مركز IoT الأصلي (-n ) أو سلسلة الاتصال لمركز IoT الأصل (-l ). إذا تم توفير كليهما، فإن سلسلة الاتصال يأخذ الأولوية. |
--resource-group -g |
اسم مجموعة الموارد لمركز IoT الأصلي. |
يقوم المثال التالي بتصدير كافة جوانب حالة مركز IoT إلى ملف يسمى myHub-state:
az iot hub state export --hub-name myHub --state-file ./myHub-state.json
يقوم المثال التالي بتصدير الأجهزة وجوانب Azure Resource Manager لحالة مركز IoT فقط، ويستبدل محتوى الملف الموجود:
az iot hub state export --hub-name myHub --state-file ./myHub-state.json --aspects arm devices --replace
تصدير نقاط النهاية
إذا اخترت تصدير جانب Azure Resource Manager لمركز IoT، فإن أمر التصدير يسترد سلسلة الاتصال لأي نقاط نهاية لها مصادقة تستند إلى المفتاح وتضمينها في قالب ARM الإخراج.
يتحقق أمر التصدير أيضا من جميع نقاط النهاية للتحقق من أن المورد الذي يتصل به لا يزال موجودا. إذا لم يكن الأمر كذلك، فلن يتم تصدير نقطة النهاية هذه وأي مسارات تستخدم نقطة النهاية هذه.
استيراد حالة مركز IoT
استخدم الأمر az iot hub state import لاستيراد معلومات الحالة من ملف تم تصديره إلى مركز IoT جديد أو موجود.
إذا كنت تريد تشغيل كل من خطوات التصدير والاستيراد في أمر واحد، فراجع المقطع لاحقا في هذه المقالة لترحيل مركز IoT.
المعلمة | التفاصيل |
---|---|
--aspects |
جوانب الحالة المراد استيرادها. حدد قيمة واحدة أو أكثر من القيم المقبولة: الذراع أو التكوينات أو الأجهزة. إذا تم ترك هذه المعلمة، استيراد جميع الجوانب الثلاثة. |
--state-file -f |
المسار إلى ملف الحالة المصدر. |
--replace -r |
إذا تم تضمين هذه المعلمة، فإن أمر الاستيراد يحذف الحالة الحالية لمركز الوجهة. |
--hub-name -n أو --login -l |
اسم مركز IoT الوجهة (-n ) أو سلسلة الاتصال لمركز IoT الوجهة (-l ). إذا تم توفير كليهما، فإن سلسلة الاتصال يأخذ الأولوية. |
--resource-group -g |
اسم مجموعة الموارد لمركز IoT الوجهة. |
يستورد المثال التالي جميع الجوانب إلى مركز IoT جديد، والذي يتم إنشاؤه إذا لم يكن موجودا بالفعل:
az iot hub state import --hub-name myNewHub --state-file ./myHub-state.json
يقوم المثال التالي باستيراد جوانب الأجهزة والتكوينات فقط إلى مركز IoT جديد، والذي يجب أن يكون موجودا بالفعل، ويستبدل أي أجهزة وتكوينات موجودة:
az iot hub state import --hub-name myNewHub --state-file ./myHub-state.json --aspects devices configurations --replace
إنشاء مركز IoT جديد مع استيراد الحالة
يمكنك استخدام az iot hub state import
الأمر لإنشاء مركز IoT جديد أو للكتابة إلى مركز IoT موجود.
إذا كنت ترغب في إنشاء IoT Hub جديد، فيجب عليك تضمين arm
الجانب في أمر الاستيراد. إذا arm
لم يكن مضمنا في الأمر، ولم يكن مركز الوجهة موجودا، فسيفشل أمر الاستيراد.
إذا لم يكن مركز الوجهة موجودا، فإن المعلمة --resource-group
مطلوبة أيضا لأمر الاستيراد.
تحديث مركز IoT موجود مع استيراد الحالة
إذا كان مركز IoT الوجهة موجودا بالفعل، فلن arm
يكون الجانب مطلوبا للأمر az iot hub state import
. إذا قمت بتضمين arm
الجانب، الكتابة فوق جميع خصائص المورد باستثناء الخصائص التالية التي لا يمكن تغييرها بعد إنشاء المركز:
- الموقع
- وحدة حفظ المخزون SKU
- عدد أقسام مراكز الأحداث المضمنة
- موقع البيانات
- الميزات
--resource-group
إذا تم تحديد في أمر الاستيراد وكان مختلفا عن مجموعة الموارد الحالية لمركز IoT، فسيفشل الأمر لأنه يحاول إنشاء مركز جديد بنفس اسم المركز الموجود بالفعل.
إذا قمت بتضمين العلامة --replace
في أمر الاستيراد، فستتم إزالة جوانب مركز IoT التالية من لوحة الوصل الوجهة قبل تحميل حالة المركز:
- ARM: يتم حذف أي شهادات تم تحميلها على مركز الوجهة. إذا كانت الشهادة موجودة، فإنها تحتاج إلى علامة etag ليتم تحديثها.
- الأجهزة: يتم حذف جميع الأجهزة والوحدات النمطية، الحافة وغير الحافة.
- التكوينات: يتم حذف جميع تكوينات إدارة الأجهزة وتوزيعات IoT Edge.
ترحيل مركز IoT
استخدم الأمر az iot hub state migrate لترحيل حالة مركز IoT واحد إلى مركز IoT جديد أو موجود.
يقوم هذا الأمر بتضمين خطوات التصدير والاستيراد في أمر واحد، ولكن لا يحتوي على ملفات إخراج. تنطبق جميع الإرشادات والقيود الموضحة في تصدير حالة مركز IoT واستيراد حالة أقسام مركز IoT على state migrate
الأمر أيضا.
إذا كنت تقوم بترحيل سجل جهاز مع العديد من الأجهزة (على سبيل المثال، بضع مئات أو بضعة آلاف) فقد يكون من الأسهل والأسرع تشغيل أوامر التصدير والاستيراد بشكل منفصل بدلا من تشغيل أمر الترحيل.
المعلمة | التفاصيل |
---|---|
--aspects |
جوانب الحالة المراد ترحيلها. حدد قيمة واحدة أو أكثر من القيم المقبولة: الذراع أو التكوينات أو الأجهزة. إذا تم ترك هذه المعلمة، ترحيل جميع الجوانب الثلاثة. |
--replace -r |
إذا تم تضمين هذه المعلمة، فإن أمر الترحيل يحذف الحالة الحالية لمركز الوجهة. |
--destination-hub --dh أو --destination-hub-login --dl |
اسم مركز IoT الوجهة (--dh ) أو سلسلة الاتصال لمركز IoT الوجهة (--dl ). إذا تم توفير كليهما، فإن سلسلة الاتصال يأخذ الأولوية. |
--destination-resource-group --dg |
اسم مجموعة الموارد لمركز IoT الوجهة. مجموعة موارد الوجهة مطلوبة إذا لم يكن مركز الوجهة موجودا. |
--origin-hub --oh أو --origin-hub-login --ol |
اسم مركز IoT الأصلي (--oh ) أو سلسلة الاتصال لمركز IoT الأصل (--ol ). إذا تم توفير كليهما، فإن سلسلة الاتصال يأخذ الأولوية. استخدم سلسلة الاتصال لتجنب الاضطرار إلى تسجيل الدخول إلى جلسة عمل Azure CLI. |
--origin-resource-group --og |
اسم مجموعة الموارد لمركز IoT الأصلي. |
يقوم المثال التالي بترحيل كافة جوانب مركز الأصل إلى مركز الوجهة، الذي يتم إنشاؤه إذا لم يكن موجودا:
az iot hub state migrate --origin-hub myHub --origin-resource-group myGroup --destination-hub myNewHub --destination-resource-group myNewGroup
استكشاف أخطاء الترحيل وإصلاحها
إذا لم تتمكن من تصدير الأجهزة أو التكوينات أو استيرادها، فتحقق من أن لديك حق الوصول إلى هذه الخصائص. إحدى الطرق للتحقق من وصولك هي عن طريق تشغيل az iot hub device-identity list
الأوامر أو az iot hub configuration list
.
az iot hub state migrate
إذا فشل الأمر، فحاول تشغيل أوامر التصدير والاستيراد بشكل منفصل. ينتج عن الأمرين نفس وظيفة الأمر ترحيل وحدها، ولكن عن طريق تشغيلها بشكل منفصل يمكنك مراجعة ملفات الحالة التي تم إنشاؤها من أمر التصدير.
الخطوات التالية
لمزيد من المعلومات حول تنفيذ عمليات مجمعة مقابل سجل الهوية في مركز IoT، راجع استيراد هويات جهاز IoT Hub وتصديرها.