كيفية ترحيل مركز Azure IoT يدويا باستخدام قالب Azure Resource Manager
استخدم مدخل Azure وقوالب Azure Resource Manager وAzure IoT Hub service SDKs لترحيل مركز IoT إلى منطقة جديدة أو طبقة جديدة أو تكوين جديد.
الخطوات الواردة في هذه المقالة مفيدة إذا كنت تريد:
- الترقية من المستوى المجاني إلى مركز IoT أساسي أو قياسي.
- نقل مركز IoT إلى منطقة جديدة.
- تصدير معلومات حالة مركز IoT للحصول على نسخة احتياطية.
- زيادة عدد الأقسام لمركز IoT.
- قم بإعداد مركز لتطوير، بدلا من بيئة الإنتاج.
- تمكين تنفيذ مخصص لقابلية وصول عالية متعددة المراكز. لمزيد من المعلومات، راجع قسم كيفية تحقيق قابلية الوصول العالية عبر المناطق لقابلية الوصول العالية والإصلاح بعد كارثة لـ IoT Hub.
لترحيل مركز، تحتاج إلى اشتراك مع وصول إداري إلى المركز الأصلي. يمكنك وضع المركز الجديد في مجموعة موارد ومنطقة جديدة، في نفس اشتراك المركز الأصلي، أو حتى في اشتراك جديد. لا يمكنك استخدام نفس الاسم لأن اسم المركز يجب أن يكون فريدًا عالميًا.
مقارنة خطوات الترحيل التلقائي واليدوي
تشبه نتيجة هذه المقالة كيفية ترحيل مركز IoT تلقائيا باستخدام Azure CLI، ولكن مع عملية مختلفة. قبل البدء، حدد العملية المناسبة للسيناريو الخاص بك.
العملية اليدوية (هذه المقالة):
- ترحيل سجل جهازك ومعلومات التوجيه ونقطة النهاية. يجب عليك إعادة إنشاء تفاصيل التكوين الأخرى يدويا في مركز IoT الجديد.
- أسرع لترحيل أعداد كبيرة من الأجهزة (على سبيل المثال، أكثر من 100,000).
- يستخدم حساب تخزين Azure لنقل سجل الجهاز.
- يقوم بمسح سلسلة الاتصال للتوجيه وتحميل الملفات التي تستخدم المصادقة المستندة إلى المفتاح من إخراج قالب ARM، وتحتاج إلى إضافتها مرة أخرى يدويا.
عملية Azure CLI:
- ترحيل سجل جهازك ومعلومات التوجيه ونقطة النهاية وتفاصيل التكوين الأخرى مثل عمليات نشر IoT Edge أو تكوينات إدارة الأجهزة التلقائية.
- أسهل لترحيل أعداد صغيرة من الأجهزة (على سبيل المثال، ما يصل إلى 10,000).
- لا يتطلب حساب تخزين Azure.
- يجمع سلسلة الاتصال للتوجيه ونقاط نهاية تحميل الملفات التي تستخدم المصادقة المستندة إلى المفتاح وتضمينها في إخراج قالب ARM.
أمور يجب مراعاتها
هناك العديد من الأشياء التي يجب مراعاتها قبل ترحيل مركز IoT.
تأكد من أن جميع الميزات المتاحة في الموقع الأصلي متوفرة أيضًا في الموقع الجديد. بعض الخدمات قيد المعاينة، وليست جميع الميزات متوفرة في كل مكان.
لا تقم بإزالة الموارد الأصلية قبل إنشاء الإصدار الذي تم ترحيله والتحقق من صحته. بمجرد إزالة أحد المراكز، يختفي إلى الأبد، ولا توجد طريقة لاستعادته للتحقق من الإعدادات أو البيانات للتأكد من نسخ المركز بشكل صحيح.
لا يتم ترحيل بيانات مركز IoT الأصلي. تتضمن هذه البيانات رسائل الجهاز والأوامر من السحابة إلى الجهاز (C2D) والمعلومات المتعلقة بالوظيفة مثل الجداول الزمنية والتاريخ. كما لا يتم ترحيل المقاييس ونتائج التسجيل.
تحتاج إلى جدولة وقت التعطل للترحيل. يستغرق استنساخ الأجهزة إلى المركز الجديد بعض الوقت. إذا كنت تستخدم طريقة الاستيراد/التصدير، فقد كشف اختبار المعايير أن الأمر قد يستغرق حوالي ساعتين لنقل 500000 جهاز، وأربع ساعات لنقل مليون جهاز.
يمكنك نسخ الأجهزة إلى المركز الجديد دون إيقاف تشغيل الأجهزة أو تغييرها.
إذا تم توفير الأجهزة في الأصل باستخدام DPS، فقم بتحديث عمليات التسجيل الخاصة بها للإشارة إلى مركز IoT الجديد. بعد ذلك، قم بإعادة توفير الأجهزة لتحديث معلومات الاتصال المخزنة في كل جهاز.
وإلا، يجب عليك استخدام أسلوب الاستيراد/التصدير لنقل الأجهزة، ومن ثم يجب تعديل الأجهزة لاستخدام المركز الجديد. على سبيل المثال، يمكنك إعداد جهازك لاستهلاك اسم مضيف IoT Hub من الخصائص المطلوبة المزدوجة. يأخذ الجهاز اسم مضيف IoT Hub هذا، ويفصل الجهاز من المركز القديم، ويعيد توصيله بالمركز الجديد.
تحتاج إلى تحديث أي شهادات حتى تتمكن من استخدامها مع الموارد الجديدة. أيضًا، ربما يكون لديك المركز المحدد في جدول DNS في مكان ما وتحتاج إلى تحديث معلومات DNS هذه.
لا يمكن ترحيل نقاط النهاية التي تستخدم الهويات المدارة المعينة من قبل النظام للمصادقة. بعد الترحيل، تحتاج إلى منح الوصول إلى الهوية المدارة المعينة من قبل النظام لمركز IoT الجديد إلى موارد نقطة النهاية ثم إعادة إنشاء نقاط النهاية.
المنهجية
هذه هي الطريقة العامة التي نوصي بها لترحيل مركز IoT.
تصدير المركز وإعداداته إلى قالب Resource Manager.
قم بإجراء التغييرات الضرورية على القالب، مثل تحديث كافة تكرارات الاسم وموقع المركز الذي تم ترحيله. بالنسبة لأي موارد في القالب المستخدم لنقاط نهاية توجيه الرسالة، قم بتحديث المفتاح في القالب الخاص بذلك المورد.
قم باستيراد القالب إلى مجموعة موارد جديدة في الموقع الجديد. تنشئ هذه الخطوة مركز IoT الجديد.
قم بتتبع الأخطاء حسب الحاجة.
أضف أي شيء لم يتم تصديره إلى القالب.
على سبيل المثال، لا يتم تصدير مجموعات المستهلكين إلى القالب. تحتاج إلى إضافة مجموعات المستهلكين إلى القالب يدويًا أو استخدام مدخل Microsoft Azure بعد إنشاء المركز.
انسخ الأجهزة من المركز الأصلي إلى المركز الجديد. تتم تغطية هذه العملية في القسم إدارة الأجهزة المسجلة في مركز IoT.
كيفية التعامل مع توجيه الرسالة
إذا كان المركز يستخدم توجيه الرسائل، فإن تصدير القالب للمركز يتضمن تكوين التوجيه، ولكنه لا يتضمن الموارد نفسها. إذا كنت تقوم بترحيل مركز IoT إلى منطقة جديدة، فيجب عليك اختيار ما إذا كنت تريد نقل موارد التوجيه إلى الموقع الجديد أيضا أو تركها في مكانها والاستمرار في استخدامها كما هي. قد يكون هناك أداء صغير يتم الحصول عليه من توجيه الرسائل إلى موارد نقطة النهاية في منطقة مختلفة.
إذا كان المركز يستخدم توجيه الرسالة، فلديك خياران.
انقل الموارد المستخدمة لنقاط نهاية التوجيه إلى الموقع الجديد.
إنشاء الموارد الجديدة بنفسك إما يدويا في مدخل Microsoft Azure أو باستخدام قوالب Resource Manager.
أعد تسمية كافة الموارد عند إنشائها في الموقع الجديد، لأنها تتطلب أسماء فريدة بشكل عام.
قم بتحديث أسماء الموارد ومفاتيح الموارد في قالب المركز الجديد قبل إنشاء المركز الجديد. يجب أن تكون الموارد موجودة عند إنشاء المركز الجديد.
لا تنقل الموارد المستخدمة لنقاط نهاية التوجيه. استخدمها في مكانها.
في الخطوة التي تقوم فيها بتحرير القالب، تحتاج إلى استرداد مفاتيح كل مورد توجيه ووضعها في القالب قبل إنشاء المركز الجديد.
لا يزال المركز يشير إلى موارد التوجيه الأصلية ويوجه الرسائل إليها كما تم تكوينها. سيكون لديك انخفاض بسيط في الأداء لأن المركز وموارد نقطة نهاية التوجيه ليست في نفس الموقع.
الاستعداد لترحيل المركز إلى منطقة أخرى
يوفر هذا القسم إرشادات محددة لترحيل المركز.
تصدير المركز الأصلي إلى قالب مورد
قم بتسجيل الدخول إلى بوابة Azure.
انتقل إلى مركز IoT الذي تريد نقله.
حدد قالب التصدير من قائمة الخصائص والإعدادات للمركز.
حدد تنزيل لتنزيل القالب. احفظ الملف في مكان يمكنك العثور عليه فيه مرة أخرى.
عرض القالب
انتقل إلى القالب الذي تم تنزيله، والمضمن في ملف مضغوط. استخرج الملف المضغوط وابحث عن الملف المسمى template.json
.
المثال التالي هو لمركز عام بدون تكوين التوجيه. إنه مركز من الفئة S1 (بوحدة واحدة) يسمى ContosoHub في المنطقة westus:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"IotHubs_ContosoHub_connectionString": {
"type": "SecureString"
},
"IotHubs_ContosoHub_containerName": {
"type": "SecureString"
},
"IotHubs_ContosoHub_name": {
"defaultValue": "ContosoHub",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Devices/IotHubs",
"apiVersion": "2021-07-01",
"name": "[parameters('IotHubs_ContosoHub_name')]",
"location": "westus",
"sku": {
"name": "S1",
"tier": "Standard",
"capacity": 1
},
"identity": {
"type": "None"
},
"properties": {
"ipFilterRules": [],
"eventHubEndpoints": {
"events": {
"retentionTimeInDays": 1,
"partitionCount": 4
}
},
"routing": {
"endpoints": {
"serviceBusQueues": [],
"serviceBusTopics": [],
"eventHubs": [],
"storageContainers": []
},
"routes": [],
"fallbackRoute": {
"name": "$fallback",
"source": "DeviceMessages",
"condition": "true",
"endpointNames": [
"events"
],
"isEnabled": true
}
},
"storageEndpoints": {
"$default": {
"sasTtlAsIso8601": "PT1H",
"connectionString": "[parameters('IotHubs_ContosoHub_connectionString')]",
"containerName": "[parameters('IotHubs_ContosoHub_containerName')]"
}
},
"messagingEndpoints": {
"fileNotifications": {
"lockDurationAsIso8601": "PT1M",
"ttlAsIso8601": "PT1H",
"maxDeliveryCount": 10
}
},
"enableFileUploadNotifications": false,
"cloudToDevice": {
"maxDeliveryCount": 10,
"defaultTtlAsIso8601": "PT1H",
"feedback": {
"lockDurationAsIso8601": "PT1M",
"ttlAsIso8601": "PT1H",
"maxDeliveryCount": 10
}
},
"features": "None",
"disableLocalAuth": false,
"allowedFqdnList": []
}
}
]
}
تحرير القالب
يجب عليك إجراء بعض التغييرات قبل أن تتمكن من استخدام القالب لإنشاء المركز الجديد في المنطقة الجديدة. استخدم Visual Studio Code أو محرر نص لتحرير القالب.
تعديل اسم المركز والموقع
في قسم المعلمات ، قم بإزالة ... connectionString و ... معلمات اسم الحاوية.
"IotHubs_ContosoHub_connectionString": { "type": "SecureString" }, "IotHubs_ContosoHub_containerName": { "type": "SecureString" },
في قسم الخصائص، قم بإزالة الخاصية storageEndpoints.
"storageEndpoints": { "$default": { "sasTtlAsIso8601": "PT1H", "connectionString": "[parameters('IotHubs_ContosoHub_connectionString')]", "containerName": "[parameters('IotHubs_ContosoHub_containerName')]" } },
إذا كنت تنقل المركز إلى منطقة جديدة، فقم بتغيير خاصية الموقع ضمن الموارد.
"location": "westus",
تحديث موارد نقطة نهاية التوجيه
عند تصدير قالب Resource Manager لمركز تم تكوين التوجيه فيه، سترى أنه لم يتم توفير مفاتيح هذه الموارد في القالب المصدر. ويدل على موضعها من خلال النقط النجمية. يجب عليك تعبئتها بالانتقال إلى تلك الموارد في المدخل واسترداد المفاتيح قبل استيراد قالب المركز الجديد وإنشاء المركز.
إذا قمت بنقل موارد التوجيه أيضا، فقم بتحديث الاسم والمعرف ومجموعة الموارد لكل نقطة نهاية أيضا.
- بالنسبة لنقاط النهاية ذات المصادقة المستندة إلى المفتاح، قم باسترداد المفاتيح المطلوبة لأي من موارد التوجيه ووضعها في القالب. يمكنك استرداد المفتاح من كل مورد في مدخل Microsoft Azure.
- لنقاط النهاية مع المصادقة المستندة إلى الهوية:
- تحتوي تلك التي تستخدم هوية مدارة معينة من قبل المستخدم على قيمة userAssignedIdentity مملوءة بمعلومات معرف الهوية كمعلمة.
- لا يمكن ترحيل تلك التي تستخدم هوية مدارة معينة من قبل النظام. احذف نقاط النهاية هذه والمسارات ذات الصلة من القالب وقم بتدوين ملاحظة لإعادة إنشائها في مركز IoT الجديد.
إنشاء المركز الجديد عن طريق تحميل القالب
إنشاء المركز الجديد باستخدام القالب الذي تم تحريره. إذا كان لديك موارد التوجيه التي سيتم نقلها، فيجب إعداد الموارد في الموقع الجديد وتحديث المراجع في القالب لتتطابق. إذا كنت لا تنقل موارد التوجيه، فيجب أن تكون في القالب مع المفاتيح المحدثة.
قم بتسجيل الدخول إلى بوابة Azure.
حدد Create a resource.
في مربع البحث، ابحث عن نشر القالب وحدده (نشر باستخدام قوالب مخصصة) . على الشاشة لنشر القالب، حدد إنشاء.
في صفحة النشر المخصص، حدد إنشاء القالب الخاص بك في المحرر، والذي يمكنك من تحميل القالب الخاص بك من ملف.
حدد تحميل الملف.
تصفح القالب الجديد الذي قمت بتحريره وحدده، ثم حدد فتح. يقوم بتحميل القالب الخاص بك في نافذة التحرير. حدد حفظ.
املأ الحقول التالية في صفحة النشر المخصصة.
الاشتراك: حدد الاشتراك المراد استخدامه.
مجموعة الموارد: حدد مجموعة موارد موجودة أو أنشئ مجموعة جديدة.
المنطقة: إذا قمت بتحديد مجموعة موارد موجودة، فسيتم ملء المنطقة لكي تتطابق مع موقع مجموعة الموارد. إذا قمت بإنشاء مجموعة موارد جديدة، فهذا هو موقعها.
اسم المركز: امنح المركز الجديد اسما.
انقر فوق زر مراجعة + إنشاء.
حدد زر إنشاء. يتحقق المدخل من صحة القالب ويوزع المركز الجديد. إذا كان لديك بيانات تكوين التوجيه، يتم تضمينها في المركز الجديد، ولكنها تشير إلى الموارد في الموقع السابق.
إدارة الأجهزة المسجلة في مركز IoT
الآن بعد أن أصبح لديك المركز الجديد قيد التشغيل، تحتاج إلى نسخ جميع الأجهزة من المركز الأصلي إلى المركز الجديد.
هناك طرق متعددة لنسخ الأجهزة. إما أنك استخدمت في الأصل خدمة توفير الأجهزة (DPS) لتوفير الأجهزة، أو أنك لم تستخدمها. إذا فعلت ذلك، فإن هذه العملية ليست صعبة. إذا لم تفعل، يمكن أن تكون هذه العملية معقدة.
إذا لم تستخدم DPS لتوفير أجهزتك، يمكنك تخطي القسم التالي والبدء باستخدام Import/Export لنقل الأجهزة إلى المركز الجديد.
استخدام DPS لإعادة توفير الأجهزة في المركز الجديد
لاستخدام DPS لنقل الأجهزة إلى الموقع الجديد، راجع كيفية إعادة توفير الأجهزة. عند الانتهاء، يمكنك عرض الأجهزة في مدخل Microsoft Azure والتحقق من وجودها في الموقع الجديد.
انتقل إلى المركز الجديد باستخدام مدخل Microsoft Azure. حدد المركز، ثم حدد أجهزة IoT. ترى الأجهزة التي تمت إعادة توفيرها إلى المركز الجديد. يمكنك أيضا عرض خصائص المركز الجديد.
إذا كنت قد نفذت التوجيه، فاختبر وتأكد من توجيه رسائلك إلى الموارد بشكل صحيح.
التراجع عن التغييرات بعد استخدام DPS
إذا كنت ترغب في التراجع عن التغييرات، قم بإعادة توفير الأجهزة من المركز الجديد إلى المركز القديم.
لقد انتهيت الآن من ترحيل المركز الخاص بك وأجهزته. يمكنك الانتقال إلى التنظيف.
استخدام import-export لنقل الأجهزة إلى المركز الجديد
يستهدف التطبيق .NET Core، بحيث يمكنك تشغيله إما على Windows أو Linux. يمكنك تنزيل العينة، واسترداد سلاسل الاتصال الخاصة بك، وتعيين العلامات التي تريد تشغيل وحدات البت لها، وتشغيلها. يمكنك أن تفعل هذا دون فتح التعليمات البرمجية.
تنزيل العينة
استخدم ImportExportDevicesSample الخاص ب IoT C# SDK. استنساخ أو تنزيل المستودع للحصول على نموذج التعليمات البرمجية.
الخيارات
لتشغيل التطبيق، حدد ثلاث سلاسل اتصال وخمسة خيارات. يمكنك تمرير هذه البيانات كوسيطات سطر الأوامر أو استخدام متغيرات البيئة، أو استخدام مزيج من الاثنين. سنقوم بتمرير الخيارات في وسيطات سطر الأوامر، وسلاسل الاتصال كمتغيرات بيئة. والسبب في ذلك هو أن سلاسل الاتصال طويلة وصعبة، ومن غير المرجح أن تتغير، ولكن قد ترغب في تغيير الخيارات وتشغيل التطبيق أكثر من مرة. لتغيير قيمة متغير بيئة، يجب عليك إغلاق نافذة الأوامر وVisual Studio أو Visual Studio Code، أيهما تستخدمه.
فيما يلي الخيارات الخمسة التي تحددها عند تشغيل التطبيق:
addDevices (الوسيطة 1) - قم بتعيين هذا الخيار إلى
True
إذا كنت تريد إضافة أجهزة ظاهرية تم إنشاؤها لك. تتم إضافة هذه الأجهزة إلى مركز المصدر. أيضًا، قم بتعيين numTo add (الوسيطة 2) لتحديد عدد الأجهزة التي تريد إضافتها. الحد الأقصى لعدد الأجهزة التي يمكنك تسجيلها في المركز هو مليون جهاز. الغرض من هذا الخيار هو الاختبار. يمكنك إنشاء عدد محدد من الأجهزة، ثم نسخها إلى مركز آخر.copyDevices (الوسيطة 3) - قم بتعيين هذا الخيار لنسخ
True
الأجهزة من مركز إلى آخر.deleteSourceDevices (الوسيطة 4) - قم بتعيين هذا الخيار لحذف
True
جميع الأجهزة المسجلة في مركز المصدر. نوصي بالانتظار حتى تتأكد من نقل جميع الأجهزة قبل تشغيل هذا. بمجرد حذف الأجهزة، لا يمكنك استعادتها.deleteDestDevices (الوسيطة 5) - قم بتعيين هذا الخيار لحذف
True
جميع الأجهزة المسجلة في مركز الوجهة. قد ترغب في القيام بذلك إذا كنت تريد نسخ الأجهزة أكثر من مرة.
الأمر الأساسي هو تشغيل dotnet، والذي يخبر .NET بإنشاء ملف csproj المحلي ثم تشغيله. يمكنك إضافة وسيطات سطر الأوامر إلى النهاية قبل تشغيلها.
يبدو سطر الأوامر الخاص بك مثل هذه الأمثلة:
// Format: dotnet run add-devices num-to-add copy-devices delete-source-devices delete-destination-devices
// Add 1000 devices, don't copy them to the other hub, or delete them.
// The first argument is true, numToAdd is 50, and the other arguments are false.
dotnet run true 1000 false false false
// Copy the devices you just added to the other hub; don't delete anything.
// The first argument is false, numToAdd is 0, copy-devices is true, and the delete arguments are both false
dotnet run false 0 true false false
استخدام متغيرات البيئة سلسلة الاتصال
لتشغيل العينة، تحتاج إلى سلاسل الاتصال بمراكز IoT القديمة والجديدة، وإلى حساب تخزين يمكنك استخدامه لملفات العمل المؤقتة. سنقوم بتخزين قيم هذه سلسلة الاتصال في متغيرات البيئة.
للحصول على قيم سلسلة الاتصال، سجل الدخول إلى مدخل Microsoft Azure.
ضع سلاسل الاتصال في مكان يمكنك استردادها، مثل NotePad. إذا قمت بنسخ ما يلي، يمكنك لصق سلاسل الاتصال في المكان الذي تذهب إليه مباشرة. لا تقم بإضافة مسافات حول علامة التساوي، لأنها تغير اسم المتغير. أيضًا، لا تحتاج إلى اقتباسات مزدوجة حول سلاسل الاتصال. إذا وضعت علامات اقتباس حول حساب التخزين سلسلة الاتصال، يفشل البرنامج النصي.
تعيين متغيرات البيئة في Windows:
SET IOTHUB_CONN_STRING=<put connection string to original IoT hub here> SET DEST_IOTHUB_CONN_STRING=<put connection string to destination IoT hub here> SET STORAGE_ACCT_CONN_STRING=<put connection string to the storage account here>
تعيين متغيرات البيئة في Linux:
export IOTHUB_CONN_STRING="<put connection string to original IoT hub here>" export DEST_IOTHUB_CONN_STRING="<put connection string to destination IoT hub here>" export STORAGE_ACCT_CONN_STRING="<put connection string to the storage account here>"
بالنسبة لسلاسل اتصال مركز IoT، انتقل إلى كل مركز في المدخل. يمكنك البحث في الموارد للمركز. إذا كنت تعرف مجموعة الموارد، يمكنك الانتقال إلى مجموعات الموارد، وتحديد مجموعة الموارد الخاصة بك، ثم تحديد المركز من قائمة الأصول في مجموعة الموارد هذه.
حدد سياسات الوصول المشترك من الإعدادات للمركز، ثم حدد iothubowner وانسخ إحدى سلاسل الاتصال. افعل الشيء نفسه للمركز الوجهة. أضفها إلى أوامر SET المناسبة.
بالنسبة لسلسلة اتصال حساب التخزين، اعثر على حساب التخزين في الموارد أو ضمن مجموعة الموارد وافتحه.
ضمن قسم الإعدادات، حدد مفاتيح الوصول وانسخ أحد سلاسل الاتصال. ضع سلسلة الاتصال في ملفك النصي لأمر SET المناسب.
الآن لديك متغيرات البيئة في ملف مع أوامر SET، وأنت تعرف ما هي وسيطات سطر الأوامر الخاصة بك. لنفحص العينة.
تشغيل نموذج التطبيق واستخدام وسيطات سطر الأوامر
افتح نافذة موجه الأوامر. حدد Windows واكتب
command prompt
للحصول على نافذة موجه الأوامر.انسخ الأوامر التي تقوم بتعيين متغيرات البيئة، واحدًا تلو الآخر، والصقها في نافذة موجه الأوامر وحدد Enter. عند الانتهاء، اكتب
SET
في نافذة موجه الأوامر لرؤية متغيرات بيئتك وقيمها. بمجرد نسخها في نافذة موجه الأوامر، لن تضطر إلى نسخها مرة أخرى، ما لم تفتح نافذة موجه أوامر جديدة.في نافذة موجه الأوامر، قم بتغيير الأدلة حتى تدخل إلى ./ImportExportDevicesSample (حيث يوجد ملف ImportExportDevicesSample.csproj). ثم اكتب ما يلي، وقم بتضمين وسيطات سطر الأوامر.
// Format: dotnet run add-devices num-to-add copy-devices delete-source-devices delete-destination-devices dotnet run arg1 arg2 arg3 arg4 arg5
يقوم أمر dotnet بإنشاء التطبيق وتشغيله. نظرا لأنك تمرر الخيارات عند تشغيل التطبيق، يمكنك تغيير قيمها في كل مرة تقوم فيها بتشغيل التطبيق. على سبيل المثال، قد ترغب في تشغيله مرة واحدة وإنشاء أجهزة جديدة، ثم تشغيله مرة أخرى ونسخ هذه الأجهزة إلى مركز جديد، وهكذا. يمكنك أيضا تنفيذ جميع الخطوات في نفس التشغيل، على الرغم من أننا نوصي بعدم حذف أي أجهزة حتى تتأكد من الانتهاء من الترحيل. فيما يلي مثال ينشئ 1000 جهاز ثم ينسخها إلى المركز الآخر.
// Format: dotnet run add-devices num-to-add copy-devices delete-source-devices delete-destination-devices // Add 1000 devices, don't copy them to the other hub or delete them. dotnet run true 1000 false false false // Do not add any devices. Copy the ones you just created to the other hub; don't delete anything. dotnet run false 0 true false false
بعد التحقق من أنه تم نسخ الأجهزة بنجاح، يمكنك إزالة الأجهزة من مركز المصدر على النحو التالي:
// Format: dotnet run add-devices num-to-add copy-devices delete-source-devices delete-destination-devices // Delete the devices from the source hub. dotnet run false 0 false true false
تشغيل نموذج التطبيق باستخدام Visual Studio
إذا كنت تريد تشغيل التطبيق في Visual Studio، فقم بتغيير الدليل الحالي إلى المجلد حيث يوجد ملف azureiot.sln. ثم قم بتشغيل هذا الأمر في نافذة موجه الأوامر لفتح الحل في Visual Studio. يجب عليك القيام بذلك في نفس نافذة الأوامر حيث تقوم بتعيين متغيرات البيئة، بحيث تكون هذه المتغيرات معروفة.
azureiot.sln
انقر بزر الماوس الأيمن فوق المشروع ImportExportDevicesSample وحدد Set as startup project.
قم بتعيين المتغيرات في الجزء العلوي من Program.cs في المجلد ImportExportDevicesSample للخيارات الخمسة.
// Add randomly created devices to the source hub. private static bool addDevices = true; //If you ask to add devices, this will be the number added. private static int numToAdd = 0; // Copy the devices from the source hub to the destination hub. private static bool copyDevices = false; // Delete all of the devices from the source hub. (It uses the IoTHubConnectionString). private static bool deleteSourceDevices = false; // Delete all of the devices from the destination hub. (Uses the DestIotHubConnectionString). private static bool deleteDestDevices = false;
حدد F5 لتشغيل التطبيق. بعد الانتهاء من التشغيل، يمكنك عرض النتائج.
عرض النتائج
يكنك عرض الأجهزة في مدخل Microsoft Azure والتحقق من وجودها في الموقع الجديد.
انتقل إلى المركز الجديد باستخدام مدخل Microsoft Azure. حدد المركز، ثم حدد أجهزة IoT. ترى الأجهزة التي نسختها من المركز القديم إلى المركز الجديد. يمكنك أيضا عرض خصائص المركز الجديد.
تحقق من أخطاء الاستيراد/التصدير بالانتقال إلى حساب تخزين Azure في مدخل Microsoft Azure والبحث في الحاوية
devicefiles
عنImportErrors.log
. إذا كان هذا الملف فارغًا (الحجم هو 0 )، فلا توجد أخطاء. إذا حاولت استيراد نفس الجهاز أكثر من مرة، فإنه يرفض الجهاز في المرة الثانية ويضيف رسالة خطأ إلى ملف السجل.
تطبيق التغييرات
في هذه المرحلة، قمت بنسخ المركز إلى الموقع الجديد وترحيل الأجهزة إلى المركز الجديد. الآن تحتاج إلى إجراء تغييرات حتى تعمل الأجهزة مع المركز الجديد.
لتطبيق بالتغييرات، إليك الخطوات التي تحتاج إلى تنفيذها:
قم بتحديث كل جهاز لتغيير اسم مضيف IoT Hub لتوجيه اسم مضيف IoT Hub إلى المركز الجديد. يجب عليك القيام بذلك باستخدام نفس الطريقة التي استخدمتها عند توفير الجهاز لأول مرة.
قم بتغيير أي تطبيقات لديك تشير إلى المركز القديم للإشارة إلى المركز الجديد.
بعد الانتهاء، يجب أن يكون المركز الجديد قيد التشغيل. يجب ألا يحتوي المركز القديم على أجهزة نشطة وأن يكون في حالة فصل.
التراجع عن التغييرات
إذا قررت التراجع عن التغييرات، فإليك الخطوات الواجب اتباعها:
قم بتحديث كل جهاز لتغيير اسم مضيف IoT Hub لتوجيه اسم مضيف IoT Hub للمركز القديم. يجب عليك القيام بذلك باستخدام نفس الطريقة التي استخدمتها عند توفير الجهاز لأول مرة.
قم بتغيير أي تطبيقات لديك تشير إلى المركز الجديد للإشارة إلى المركز القديم. على سبيل المثال، إذا كنت تستخدم Azure Analytics، فقد تحتاج إلى إعادة تكوين إدخال Azure Stream Analytics.
احذف المركز الجديد.
إذا كانت لديك موارد للتوجيه، يجب أن يشير التكوين الموجود على المركز القديم إلى تكوين التوجيه الصحيح، ويجب أن يعمل مع هذه الموارد بعد إعادة تشغيل المركز.
التحقق من النتائج
للتحقق من النتائج، قم بتغيير حل IoT الخاص بك للإشارة إلى مركزك في الموقع الجديد وتشغيله. وبعبارة أخرى، قم بتنفيذ نفس الإجراءات مع المركز الجديد الذي قمت به مع المركز السابق وتأكد من أنها تعمل بشكل صحيح.
إذا كنت قد نفذت التوجيه، فاختبر وتأكد من توجيه رسائلك إلى الموارد بشكل صحيح.
تنظيف
لا تنظف حتى تتأكد من أن المركز الجديد قيد التشغيل وأن الأجهزة تعمل بشكل صحيح. تأكد أيضا من اختبار التوجيه إذا كنت تستخدم هذه الميزة. عندما تكون جاهزاً، قم بتنظيف الموارد القديمة من خلال تنفيذ الخطوات التالية:
إذا لم تكن قد فعلت ذلك بالفعل، فاحذف المركز القديم. يؤدي ذلك إلى إزالة جميع الأجهزة النشطة من المركز.
إذا كانت لديك موارد التوجيه التي نقلتها إلى الموقع الجديد، يمكنك حذف موارد التوجيه القديمة.
الخطوات التالية
لقد قمت بترحيل مركز IoT إلى مركز جديد في منطقة جديدة، كاملة مع الأجهزة. لمزيد من المعلومات حول تنفيذ عمليات مجمعة مقابل سجل الهوية في مركز IoT، راجع استيراد هويات جهاز IoT Hub وتصديرها بشكل مجمع.