فهم عمليات التوزيع التلقائي لـ IoT Edge لأجهزة فردية أو على نطاق واسع
ينطبق على: IoT Edge 1.5 IoT Edge 1.4
هام
IoT Edge 1.5 LTS وIoT Edge 1.4 LTS هي إصدارات مدعومة. IoT Edge 1.4 LTS هو نهاية العمر الافتراضي في 12 نوفمبر 2024. إذا كنت تستخدم إصدارا سابقا، فشاهد تحديث IoT Edge.
تساعدك عمليات التوزيع التلقائي والنشر متعدد الطبقات على إدارة الوحدات وتكوينها على أعداد كبيرة من أجهزة IoT Edge.
يوفر Azure IoT Edge طريقتين لتكوين الوحدات النمطية للتشغيل على أجهزة IoT Edge. الطريقة الأولى هي نشر الوحدات النمطية على أساس كل جهاز. يمكنك إنشاء بيان توزيع ثم تطبيقه على جهاز معين بالاسم. الطريقة الثانية هي نشر الوحدات النمطية تلقائيا على أي جهاز مسجل يلبي مجموعة من الشروط المحددة. يمكنك إنشاء بيان توزيع ثم تحديد الأجهزة التي ينطبق عليها استنادا إلى العلامات في الجهاز المزدوج.
لا يمكنك الجمع بين عمليات التوزيع التلقائية لكل جهاز. بمجرد البدء في استهداف أجهزة IoT Edge مع عمليات النشر التلقائية (مع عمليات النشر ذات الطبقات أو بدونها)، لن يتم دعم عمليات التوزيع لكل جهاز.
تركز هذه المقالة على تكوين ومراقبة أساطيل الأجهزة، ويشار إليها مجتمعة باسم عمليات النشر التلقائي ل IoT Edge.
خطوات التوزيع الأساسية هي كما يلي:
- يعرف عامل التشغيل بيان توزيع يصف مجموعة من الوحدات النمطية والأجهزة المستهدفة.
- ونتيجة لذلك، تتصل خدمة IoT Hub بجميع الأجهزة المستهدفة لتكوينها باستخدام الوحدات النمطية المعلن عنها.
- تسترد خدمة IoT Hub الحالة من أجهزة IoT Edge وتجعلها متاحة للمشغل. على سبيل المثال، يمكن للمشغل معرفة متى لم يتم تكوين جهاز Edge بنجاح أو إذا فشلت وحدة أثناء وقت التشغيل.
- في أي وقت، عندما تأتي أجهزة IoT Edge المستهدفة حديثا عبر الإنترنت وتتصل ب IoT Hub، يتم تكوينها للنشر.
توضح هذه المقالة كل مكون مشارك في تكوين ومراقبة التوزيع. للحصول على معاينة لإنشاء عملية نشر وتحديثها، راجع نشر وحدات IoT Edge ومراقبتها على نطاق واسع.
التوزيع
يعين التوزيع التلقائي لـ IoT Edge صور وحدة IoT Edge لتشغيلها كمثيلات على مجموعة مستهدفة من أجهزة IoT Edge. يقوم التوزيع التلقائي بتكوين بيان توزيع IoT Edge لتضمين قائمة بالوحدات النمطية مع معلمات التهيئة المقابلة. يمكن تعيين توزيع إلى جهاز واحد (استنادا إلى معرف الجهاز) أو إلى مجموعة من الأجهزة (استنادا إلى العلامات). بمجرد أن يتلقى جهاز IoT Edge بيان توزيع، يقوم بتنزيل وتثبيت صور الحاوية من مستودعات الحاويات المعنية، وتكوينها وفقا لذلك. بمجرد إنشاء التوزيع يمكن لمشغل مراقبة حالة التوزيع لمعرفة ما إذا كان يتم تكوين الأجهزة المستهدفة بشكل صحيح.
يمكن تكوين أجهزة IoT Edge فقط مع التوزيع. يجب أن تكون المتطلبات الأساسية التالية على الجهاز قبل أن يتلقى التوزيع:
- نظام التشغيل الأساسي
- نظام إدارة الحاويات، مثل Moby أو Docker
- توفير وقت تشغيل IoT Edge
بيان التوزيع
بيان التوزيع هو مستند JSON يصف الوحدات النمطية التي سيتم تكوينها على أجهزة IoT Edge المستهدفة. يحتوي على بيانات تعريف التكوين لجميع الوحدات، بما في ذلك وحدات النظام المطلوبة (على وجه التحديد عامل IoT Edge ومحور IoT Edge).
تتضمن البيانات التعريفية للتكوين لكل وحدة ما يلي:
- الإصدار
- نوع
- الحالة (على سبيل المثال، قيد التشغيل أو متوقف)
- نهج إعادة تشغيل
- سجل الصور والحاويات
- مسارات إدخال البيانات وإخراجها
إذا تم تخزين نسخة الوحدة النمطية في سجل حاوية خاص، فإن عامل IoT Edge يحتفظ ببيانات اعتماد التسجيل.
شرط الهدف
يتم تقييم حالة الجهاز الهدف باستمرار طوال مدة التوزيع. يتم تضمين أي أجهزة جديدة تفي بالمتطلبات، وتتم إزالة أي أجهزة موجودة لم تعد تفي بالمتطلبات. يتم إعادة تنشيط التوزيع إذا اكتشفت الخدمة أي تغيير في حالة الهدف.
على سبيل المثال، لديك نشر بشرط هدف tags.environment = 'prod'
. عند بدء النشر، هناك 10 أجهزة إنتاج. تم تثبيت الوحدات بنجاح في هذه الأجهزة 10. تظهر حالة عامل IoT Edge 10 أجهزة إجمالية و10 استجابات ناجحة و0 استجابات فشل و0 استجابات معلقة. الآن يمكنك إضافة خمسة أجهزة أخرى باستخدام tags.environment = 'prod'
. تكتشف الخدمة التغيير وتظهر الآن حالة عامل IoT Edge 15 جهازا إجماليا، و10 استجابات ناجحة، و0 استجابات فشل، و5 استجابات معلقة أثناء نشرها على الأجهزة الخمسة الجديدة.
إذا لم يكن للتوزيع شرط هدف، تطبيقه على أي أجهزة.
استخدم أي شرط منطقي على علامات توأم الجهاز أو خصائص الجهاز المزدوج المبلغ عنها أو معرف الجهاز لتحديد الأجهزة المستهدفة. إذا كنت ترغب في استخدام شرط مع العلامات، تحتاج إلى إضافة "tags":{}
قسم في الجهاز المزدوج تحت نفس مستوى الخصائص. لمزيد من المعلومات حول العلامات في توأم الجهاز، راجع فهم واستخدام توائم الجهاز في IoT Hub. لمزيد من المعلومات حول عمليات الاستعلام، راجع عوامل تشغيل لغة استعلام IoT Hub والدالة IS_DEFINED.
أمثلة على الشروط المستهدفة:
- معرف الجهاز = 'linuxprod1'
- العلامات. البيئة = 'prod'
- العلامات.البيئة = 'prod' وعلامات.location = 'westus'
- العلامات. البيئة = 'prod' أو tags.location = 'westus'
- العلامات. عامل التشغيل = 'John' AND tags.environment = 'prod' AND NOT deviceId = 'linuxprod1'
- Properties.reported.devicemodel = 4000x'
- IS_DEFINED(tags.remote)
- NOT IS_DEFINED(tags.location.building)
- tags.environment != null
- [بلا]
ضع في اعتبارك هذه القيود عند إنشاء شرط هدف:
- في الجهاز المزدوج، يمكنك فقط إنشاء شرط هدف باستخدام العلامات أو الخصائص المبلغ عنها أو معرف الجهاز.
- لا يسمح بعلامات الاقتباس المزدوجة في أي جزء من شرط الهدف. استخدم علامات الاقتباس المفردة.
- علامات الاقتباس المفردة تمثل قيم الشرط الهدف. لذلك، يجب أن تهرب من الاقتباس الفردي باقتباس واحد آخر إذا كان جزءا من اسم الجهاز. على سبيل المثال، لاستهداف جهاز يسمى
operator'sDevice
، اكتبdeviceId='operator''sDevice'
. - يسمح بالأرقام والأحرف والأحرف التالية في قيم الشرط الهدف:
"()<>@,;:\\"/?={} \t\n\r
. - الأحرف التالية غير مسموح بها في مفاتيح الشرط الهدف:
/;
.
أولوية
تحدد الأولوية ما إذا كان يجب تطبيق التوزيع على جهاز مستهدف نسبة إلى عمليات التوزيع الأخرى. أولوية النشر هي عدد صحيح موجب ضمن النطاق من 0 إلى 2,147,483,647. تشير الأرقام الأكبر إلى أولوية أعلى. إذا تم استهداف جهاز IoT Edge بواسطة أكثر من عملية التوزيع، يتم تطبيق التوزيع ذو الأولوية العليا. لا يتم تطبيق عمليات النشر ذات الأولويات الأقل، ولا يتم دمجها. إذا تم استهداف جهاز مع اثنين أو أكثر من عمليات التوزيع ذات الأولوية المتساوية، يتم تطبيق أحدث توزيع تم إنشاؤه (يحدده الطابع الزمني الإنشاء).
بطاقات عنونة
التسميات هي أزواج سلسلة المفتاح/القيمة التي يمكنك استخدامها لتصفية عمليات التوزيع وتجميعها. قد يكون للتوزيع تسميات متعددة. التسميات اختيارية ولا تؤثر على تكوين أجهزة IoT Edge.
المقاييس
افتراضيا، كل عمليات التوزيع تقرير على أربعة مقاييس:
- يعرض Targeted أجهزة IoT Edge التي تطابق شرط استهداف التوزيع.
- يظهر التطبيق أجهزة IoT Edge المستهدفة التي لا تستهدفها عملية نشر أخرى ذات أولوية أعلى.
- يظهر Reporting Success أجهزة IoT Edge التي تبلغ عن وحداتها النمطية كما تم نشرها بنجاح.
- يظهر فشل التقارير أجهزة IoT Edge التي تبلغ عن وحدة نمطية واحدة أو أكثر كما تم نشرها دون جدوى. للمزيد من التحقيق في الخطأ، اتصل عن بعد بهذه الأجهزة واعرض ملفات السجل.
بالإضافة إلى ذلك، يمكنك تعريف المقاييس المخصصة الخاصة بك للمساعدة في مراقبة وإدارة التوزيع.
توفر المقاييس تعدادات موجزة لمختلف الحالات التي قد تقوم الأجهزة بالإبلاغ عنها كنتيجة لتطبيق تكوين التوزيع. يمكن للمقاييس الاستعلام عن خصائص وحدة edgeHub المزدوجة المبلغ عنها، مثل lastDesiredStatus أو lastConnectTime.
على سبيل المثال:
SELECT deviceId FROM devices
WHERE properties.reported.lastDesiredStatus.code = 200
إضافة المقاييس الخاصة بك اختيارية، ولا تؤثر على التكوين الفعلي لأجهزة IoT Edge.
التوزيع ذو الطبقات
عمليات التوزيع ذات الطبقات هي عمليات توزيع تلقائية يمكن دمجها معا لتقليل عدد عمليات التوزيع الفريدة التي تحتاج إلى إنشاء. عمليات التوزيع ذات الطبقات مفيدة في السيناريوهات حيث يتم إعادة استخدام نفس الوحدات النمطية في مجموعات مختلفة في العديد من عمليات التوزيع التلقائي.
تحتوي عمليات التوزيع ذات الطبقات على نفس المكونات الأساسية مثل أي توزيع تلقائي. وهي تستهدف الأجهزة استنادا إلى العلامات في توائم الجهاز وتوفر نفس الوظائف حول التسميات والمقاييس وإعداد التقارير عن الحالة. كما أن عمليات النشر ذات الطبقات لها أولويات معينة لها. بدلا من استخدام الأولوية لتحديد التوزيع الذي يتم تطبيقه على جهاز، تحدد الأولوية كيفية تصنيف عمليات التوزيع المتعددة على جهاز. على سبيل المثال، إذا كان لدى عمليات التوزيع ذات طبقتين وحدة نمطية أو توجيه يحمل نفس الاسم، سيتم تطبيق التوزيع ذو الأولوية العليا أثناء الكتابة فوق الأولوية الأدنى.
لا يتم تكوين الوحدات النمطية لوقت تشغيل النظام، والمعروفة باسم edgeAgent وedgeHub، كجزء من نشر الطبقات. يحتاج أي جهاز IoT Edge مستهدف بواسطة نشر متعدد الطبقات، أولا إلى توزيع تلقائي قياسي مطبق عليه. يزود التوزيع التلقائي القاعدة التي يمكن إضافة عمليات التوزيع ذات الطبقات عليها.
يمكن لجهاز IoT Edge تطبيق توزيع تلقائي قياسي واحد فقط، ولكن يمكنه تطبيق عمليات توزيع تلقائية متعددة الطبقات. يجب أن يكون لأي عمليات توزيع ذات طبقات تستهدف جهاز أولوية أعلى من التوزيع التلقائي لهذا الجهاز.
على سبيل المثال، ضع في اعتبارك السيناريو التالي لشركة تدير المباني. طورت الشركة وحدات IoT Edge لجمع البيانات من كاميرات الأمان وأجهزة استشعار الحركة والمصاعد. ومع ذلك، لا يمكن لجميع مبانيهم استخدام الوحدات الثلاث. مع التوزيع التلقائي القياسي، تحتاج الشركة إلى إنشاء عمليات توزيع فردية لجميع مجموعات الوحدات النمطية التي تحتاجها مبانيها.
ومع ذلك، بمجرد أن تتحول الشركة إلى عمليات النشر التلقائية ذات الطبقات، يمكنهم إنشاء نفس مجموعات الوحدة النمطية لمبانيهم مع عمليات نشر أقل لإدارتها. كل وحدة لديها توزيع الطبقات الخاصة بها، وعلامات الجهاز تحديد الوحدات النمطية التي تحصل على إضافة إلى كل مبنى.
تكوين الوحدة النمطية المزدوجة
عند العمل مع عمليات النشر ذات الطبقات، قد يكون لديك، عن قصد أو غير ذلك، عمليتي توزيع بنفس الوحدة النمطية التي تستهدف جهازا. في هذه الحالات، يمكنك تحديد ما إذا كان يجب أن يقوم التوزيع ذي الأولوية الأعلى بالكتابة فوق الوحدة النمطية المزدوجة أو إلحاقها. على سبيل المثال، قد يكون لديك نشر يطبق نفس الوحدة النمطية على 100 جهاز مختلف. ومع ذلك، توجد 10 من هذه الأجهزة في مرافق آمنة وتحتاج إلى تكوين إضافي للاتصال من خلال خوادم الوكيل. يمكنك استخدام نشر متعدد الطبقات لإضافة خصائص الوحدة النمطية المزدوجة التي تمكن هذه الأجهزة العشرة من الاتصال بشكل آمن دون الكتابة فوق معلومات الوحدة النمطية المزدوجة الموجودة من التوزيع الأساسي.
يمكنك إلحاق خصائص الوحدة النمطية المزدوجة المطلوبة في بيان التوزيع. في التوزيع القياسي، يمكنك إضافة خصائص في قسم properties.desired من الوحدة النمطية المزدوجة. ولكن في التوزيع متعدد الطبقات، يمكنك الإعلان عن مجموعة فرعية جديدة من الخصائص المطلوبة.
على سبيل المثال، في التوزيع القياسي، يمكنك إضافة وحدة استشعار درجة الحرارة المحاكاة مع الخصائص المطلوبة التالية التي تخبرها بإرسال البيانات في فواصل زمنية مدتها 5 ثوان:
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 5
}
}
في عملية نشر ذات طبقات تستهدف بعض أو كل هذه الأجهزة نفسها، يمكنك إضافة خاصية تخبر مستشعر المحاكاة بإرسال 1000 رسالة ثم إيقافها. لا تريد الكتابة فوق الخصائص الموجودة، لذلك يمكنك إنشاء مقطع جديد ضمن الخصائص المطلوبة يسمى layeredProperties
، والذي يحتوي على الخاصية الجديدة:
"SimulatedTemperatureSensor": {
"properties.desired.layeredProperties": {
"StopAfterCount": 1000
}
}
سيعكس الجهاز الذي تم تطبيق كل من عمليات التوزيع الخصائص التالية في الوحدة المزدوجة لمستشعر درجة الحرارة المحاكاة:
"properties": {
"desired": {
"SendData": true,
"SendInterval": 5,
"layeredProperties": {
"StopAfterCount": 1000
}
}
}
إذا قمت بتعيين properties.desired
حقل الوحدة النمطية المزدوجة في نشر متعدد الطبقات، properties.desired
فستستبدل الخصائص المطلوبة لتلك الوحدة النمطية في أي عمليات نشر ذات أولوية أقل.
طرح مرحلي
الطرح المرحلي هو عملية شاملة يقوم المشغل بموجبها بتوزيع التغييرات على مجموعة موسعة من أجهزة IoT Edge. والهدف من ذلك هو إجراء تغييرات تدريجيا لتقليل مخاطر إجراء تغييرات واسعة النطاق. تساعد عمليات النشر التلقائية في إدارة الإطلاقات التدريجية عبر أسطول من أجهزة IoT Edge.
يتم تنفيذ الطرح المرحلي في المراحل والخطوات التالية:
- أنشئ "بيئة اختبار لأجهزة IoT Edge" من خلال تزويدها وتعيين علامة مزدوجة للجهاز مثل
tag.environment='test'
. يجب أن تعكس بيئة الاختبار بيئة الإنتاج التي سيستهدفها التوزيع في النهاية. - إنشاء التوزيع بما في ذلك الوحدات النمطية والتكوينات المطلوبة. يجب أن تستهدف حالة الاستهداف بيئة جهاز IoT Edge الاختبارية.
- تحقق من صحة تكوين الوحدة الجديدة في بيئة الاختبار.
- تحديث التوزيع لتضمين مجموعة فرعية من أجهزة IoT Edge الإنتاج عن طريق إضافة علامة جديدة إلى شرط الاستهداف. تأكد أيضا من أن الأولوية للتوزيع أعلى من عمليات التوزيع الأخرى المستهدفة حاليا لتلك الأجهزة.
- تحقق من نجاح النشر على أجهزة IoT Edge المستهدفة عن طريق عرض حالة التوزيع.
- تحديث التوزيع لاستهداف كافة أجهزة IoT Edge الإنتاج المتبقية.
العودة إلى الحالة السابقة
يمكن التراجع عن عمليات التوزيع إذا تلقيت أخطاء أو تكوينات خاطئة. نظرًا لأن التوزيع يحدد التكوين المطلق للوحدة النمطية لجهاز IoT Edge، يجب أيضا أن يستهدف التوزيع الإضافي نفس الجهاز بأولوية أقل حتى إذا كان الهدف هو إزالة جميع الوحدات.
لا يؤدي حذف التوزيع إلى إزالة الوحدات النمطية من الأجهزة المستهدفة. يجب أن يكون هناك توزيع آخر يعرف تكوين جديد للأجهزة، حتى لو كان التوزيع فارغ.
ومع ذلك، قد يؤدي حذف عملية نشر إلى إزالة الوحدات النمطية من الجهاز المستهدف إذا كان نشرا متعدد الطبقات. يقوم التوزيع متعدد الطبقات بتحديث التوزيع الأساسي، مما قد يضيف وحدات نمطية. تؤدي إزالة نشر متعدد الطبقات إلى إزالة تحديثه للتوزيع الأساسي، مما قد يؤدي إلى إزالة الوحدات النمطية.
على سبيل المثال، يحتوي الجهاز على نشر أساسي A وتوزيعات ذات طبقات O وM مطبقة عليه (بحيث يتم نشر عمليات التوزيع A وO وM على الجهاز). إذا تم حذف التوزيع متعدد الطبقات M، تطبيق A وO على الجهاز، وتتم إزالة الوحدات النمطية الفريدة للتوزيع M.
قم بإجراء عمليات التراجع بالتسلسل التالي:
- تأكد من أن التوزيع الثاني مستهدف أيضًا في نفس مجموعة الجهاز. إذا كان الهدف من الاستعادة هو إزالة كافة الوحدات النمطية، يجب أن لا يتضمن التوزيع الثاني أية وحدات نمطية.
- تعديل أو إزالة تعبير الشرط الهدف للتوزيع الذي ترغب في التراجع عنه بحيث لا تفي الأجهزة بشرط الاستهداف.
- تحقق من نجاح الاستعادة بعرض حالة التوزيع.
- يجب أن لا يظهر التوزيع التراجع حالة الأجهزة التي تم التراجع عنها.
- يجب أن يتضمن التوزيع الثاني الآن حالة التوزيع للأجهزة التي تم التراجع عنها.
الخطوات التالية
- اطلع على خطوات إنشاء نشر أو تحديثه أو حذفه في نشر وحدات IoT Edge ومراقبتها على نطاق واسع.
- تعرف على المزيد حول مفاهيم IoT Edge الأخرى مثل وقت تشغيل IoT Edge ووحدات IoT Edge.