الإدارة التلقائية لجهاز IoT والوحدة النمطية باستخدام Azure CLI

تعمل الإدارة التلقائية للأجهزة في Azure IoT Hub على أتمتة العديد من الوظائف المتكررة والمعقدة لإدارة مجموعات الأجهزة الكبيرة. باستخدام إدارة الأجهزة التلقائية، يمكنك استهداف مجموعة من الأجهزة استنادا إلى خصائصها، وتحديد التكوين المطلوب، ثم السماح لـ IoT Hub بتحديث الأجهزة عندما تدخل في النطاق. يتم إجراء هذا التحديث باستخدام تكوين تلقائي للجهاز أو تكوين تلقائي للوحدة النمطية، والذي يتيح لك تلخيص الإكمال والامتثال، والتعامل مع الدمج والتعارضات، وطرح التكوينات في نهج مرحلي.

ملاحظة

تتوفر الميزات الموضحة في هذه المقالة فقط في الطبقة القياسية من IoT Hub. لمزيد من المعلومات حول طبقات IoT Hub الأساسية والقياسية/المجانية، راجع اختيار طبقة IoT Hub المناسبة.

تعمل الإدارة التلقائية للجهاز عن طريق تحديث مجموعة من توائم الجهاز أو توائم الوحدة النمطية ذات الخصائص المطلوبة والإبلاغ عن ملخص يستند إلى الخصائص التي تم الإبلاغ عنها للتوائم يقدم فئة جديدة ومستند JSON يسمى التكوين الذي يحتوي على ثلاثة أجزاء:

  • يحدد الشرط المستهدف نطاق توائم الجهاز أو توائم الوحدة النمطية المراد تحديثها. يتم تحديد الشروط المستهدفة كاستعلام في علامات و/أو خصائص الأجهزة المزدوجة المبلغ عنها.

  • يحدد المحتوى المستهدف الخصائص المطلوبة التي سيتم إضافتها أو تحديثها في توائم الجهاز المستهدفة أو توائم الوحدة. يتضمن المحتوى مساراً إلى قسم الخصائص المطلوبة المراد تغييرها.

  • تحدد المقاييس عدد الملخصات لحالات التكوين المختلفة مثل النجاح والتقدموالخطأ. يتم تحديد المقاييس المخصصة كطلبات بحث على المواقع المزدوجة التي تم الإبلاغ عنها. مقاييس النظام هي المقاييس الافتراضية التي تقيس حالة تحديث التوأم، مثل عدد التوائم المستهدفة وعدد التوائم التي تم تحديثها بنجاح.

يتم تشغيل التكوينات التلقائية لأول مرة بعد وقت قصير من إنشاء التكوين ثم على فترات زمنية مدتها خمس دقائق. يتم تشغيل استعلامات المقاييس في كل مرة يتم فيها تشغيل التكوين التلقائي.

متطلبات CLI

ملاحظة

تستخدم هذه المقالة أحدث إصدار من ملحق Azure IoT، ويطلق عليه azure-iot. يسمى الإصدار القديم azure-cli-iot-ext. يجب أن يكون لديك إصدار واحد فقط مُثبت في كل مرة. يمكنك استخدام الأمر az extension list للتحقق من صحة الملحقات المثبتة حالياً.

استخدم az extension remove --name azure-cli-iot-ext لإزالة الإصدار القديم من الملحق.

استخدم az extension add --name azure-iot لإضافة الإصدار الجديد من الملحق.

لمعرفة ما هي الملحقات التي قمت بتثبيتها، استخدم az extension list.

تنفيذ التوائم

تتطلب تكوينات الجهاز التلقائية استخدام توائم الجهاز لمزامنة الحالة بين السحابة والأجهزة. لمزيد من المعلومات، راجع فهم واستخدام الجهاز المزدوج في IoT Hub.

تتطلب تكوينات الوحدة التلقائية استخدام توائم الوحدة النمطية لمزامنة الحالة بين السحابة والوحدات. لمزيد من المعلومات، راجع فهم التوائم النمطية واستخدامها في IoT Hub.

استخدام العلامات لاستهداف الأجهزة المزدوجة

قبل إنشاء تكوين، يجب عليك تحديد الأجهزة أو الوحدات النمطية التي تريد التأثير عليها. يحدد Azure IoT Hub الأجهزة ويستخدم العلامات في توأم الجهاز، ويحدد الوحدات النمطية باستخدام العلامات في توأم الوحدة. يمكن أن يحتوي كل جهاز أو وحدة نمطية على علامات متعددة ، ويمكنك تحديدها بأي طريقة منطقية لحلك. على سبيل المثال، إذا كنت تدير الأجهزة في مواقع مختلفة، أضِف العلامات التالية إلى جهاز مزدوج:

"tags": {
	"location": {
		"state": "Washington",
		"city": "Tacoma"
    }
},

تحديد المحتوى والمقاييس المستهدفة

يتم تحديد المحتوى المستهدف واستعلامات المقاييس كمستندات JSON تصف الخصائص التوأم للجهاز أو الوحدة النمطية التوأم المطلوب تعيينها والخصائص المبلغ عنها لقياسها. لإنشاء تكوين تلقائي باستخدام Azure CLI، احفظ المحتوى والمقاييس المستهدفة محليا كملفات .txt. يمكنك استخدام مسارات الملفات في مقطع لاحق عند تشغيل الأمر لتطبيق التكوين على جهازك.

في ما يلي عينة محتوى مستهدف أساسية لتكوين تلقائي للجهاز:

{
  "content": {
    "deviceContent": {
      "properties.desired.chillerWaterSettings": {
        "temperature": 38,
        "pressure": 78
      }
    }
}

تتصرف تكوينات الوحدة النمطية التلقائية بشكل مشابه جدا ، لكنك تستهدف moduleContent بدلا من deviceContent.

{
  "content": {
    "moduleContent": {
      "properties.desired.chillerWaterSettings": {
        "temperature": 38,
        "pressure": 78
      }
    }
}

في ما يلي أمثلة على طلبات البحث المقياسية:

{
  "queries": {
    "Compliant": "select deviceId from devices where configurations.[[chillerdevicesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='current'",
    "Error": "select deviceId from devices where configurations.[[chillerdevicesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='error'",
    "Pending": "select deviceId from devices where configurations.[[chillerdevicesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='pending'"
  }
}

تتشابه استعلامات القياس للوحدات النمطية أيضا مع استعلامات الأجهزة، ولكنك تحدد من devices.modulesبينها moduleId . على سبيل المثال:

{
  "queries": {
    "Compliant": "select deviceId, moduleId from devices.module where configurations.[[chillermodulesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='current'"
  }
}

إنشاء تكوين

يمكنك تكوين الأجهزة المستهدفة عن طريق إنشاء تكوين يتكون من المحتوى الهدف والمقاييس.

استَخدم الأمر التالي لإنشاء تكوين:

   az iot hub configuration create --config-id [configuration id] \
     --labels [labels] --content [file path] --hub-name [hub name] \
     --target-condition [target query] --priority [int] \
     --metrics [metric queries]
  • --config-id - اسم التكوين الذي سيتم إنشاؤه في مركز إنترنت الأشياء. امنح التكوين اسما فريدا يصل طوله إلى 128 حرفا. يسمح بالأحرف الصغيرة والأحرف الخاصة التالية: -+%_*!'. لا يسمح بالمسافات.

  • --التصنيفات - أضف تصنيفات للمساعدة في تتبع التكوين. التسميات هي اسم وقيمة أزواج تصف التوزيع الخاص بك. على سبيل المثال: ⁧HostPlatform, Linux⁩ أو ⁧Version, 3.0.1

  • --المحتوى - JSON المضمن أو مسار الملف إلى المحتوى المستهدف ليتم تعيينه كخصائص مزدوجة مطلوبة.

  • --اسم المحور - اسم مركز إنترنت الأشياء الذي سيتم إنشاء التكوين فيه. يجب أن يكون المركز موجود في الاشتراك الحالي. قم بالتبديل إلى الاشتراك المطلوب باستخدام الأمر az account set -s [subscription name]

  • --شرط الهدف - أدخل شرطا مستهدفا لتحديد الأجهزة أو الوحدات النمطية التي سيتم استهدافها بهذا التكوين. بالنسبة للتكوين التلقائي للجهاز، يستند الشرط إلى العلامات المزدوجة للجهاز أو الخصائص المرغوبة المزدوجة للجهاز ويجب أن يتطابق مع تنسيق التعبير. على سبيل المثال، tags.environment='test' أو properties.desired.devicemodel='4000x'. بالنسبة للتكوين التلقائي للوحدة النمطية ، يعتمد الشرط على علامات الوحدة النمطية المزدوجة أو الخصائص المرغوبة المزدوجة للوحدة النمطية .. على سبيل المثال، from devices.modules where tags.environment='test' أو from devices.modules where properties.reported.chillerProperties.model='4000x'.

  • --الأولوية - عدد صحيح موجب. في حالة استهداف تكوينين أو أكثر لنفس الجهاز أو الوحدة النمطية، سيتم تطبيق التكوين ذي القيمة الرقمية الأعلى للأولوية.

  • --المقاييس - مسار الملف إلى استعلامات المقياس. توفر المقاييس عددا موجزا للحالات المختلفة التي قد يبلغ عنها الجهاز أو الوحدة النمطية بعد تطبيق محتوى التكوين. على سبيل المثال، يُمكنك إنشاء مقياس لتغييرات الإعدادات المعلقة، ومقياس للأخطاء، ومقياس للتغييرات الناجحة في الإعدادات.

مراقبة التكوين

استَخدم الأمر التالي لعرض محتويات تكوين:

az iot hub configuration show --config-id [configuration id] \
  --hub-name [hub name]
  • --config-id - اسم التكوين الموجود في مركز إنترنت الأشياء.

  • --اسم المحور - اسم مركز إنترنت الأشياء الذي يوجد فيه التكوين. يجب أن يكون المركز موجود في الاشتراك الحالي. قم بالتبديل إلى الاشتراك المطلوب باستخدام الأمر az account set -s [subscription name]

افحص التكوين في نافذة الأمر. تسرد خاصية المقاييس عددا لكل مقياس يتم تقييمه بواسطة كل مركز:

  • targetedCount - مقياس نظام يحدد عدد توائم الجهاز أو توائم الوحدة النمطية في IoT Hub التي تطابق شرط الاستهداف.

  • applied Count - يحدد مقياس النظام عدد الأجهزة أو الوحدات النمطية التي تم تطبيق المحتوى المستهدف عليها.

  • مقياسك المخصص - أي مقاييس قمت بتعريفها هي مقاييس المستخدم.

يمكنك إظهار قائمة بمعرفات الأجهزة أو معرفات الوحدات النمطية أو الكائنات لكل مقياس من المقاييس باستخدام الأمر التالي:

az iot hub configuration show-metric --config-id [configuration id] \
   --metric-id [metric id] --hub-name [hub name] --metric-type [type] 
  • --config-id - اسم النشر الموجود في مركز إنترنت الأشياء.

  • --metric-id - اسم المقياس الذي تريد الاطلاع على قائمة معرفات الأجهزة أو معرفات الوحدات النمطية له، على سبيل المثال appliedCount.

  • --اسم الموزع - اسم مركز إنترنت الأشياء الذي يوجد فيه النشر. يجب أن يكون المركز موجود في الاشتراك الحالي. قم بالتبديل إلى الاشتراك المطلوب باستخدام الأمر az account set -s [subscription name].

  • --نوع متري - يمكن أن يكون system نوع المقياس أو user. مقاييس النظام هي targetedCount و appliedCount. كافة المقاييس الأخرى هي مقاييس المستخدم.

عدّل تكوين

عند تعديل تكوين، يتم نسخ التغييرات فورًا إلى كافة الأجهزة المستهدفة.

إذا قمت بتحديث شرط الهدف، تحدث التحديثات التالية:

  • إذا لم يستوف التوأم شرط الهدف القديم، ولكنه استوفى شرط الهدف الجديد وكان هذا التكوين هو الأولوية القصوى لهذا التوأم، تطبيق هذا التكوين.

  • إذا لم يعد التوأم الذي يقوم حاليا بتشغيل هذا التكوين يفي بالشرط المستهدف، فستتم إزالة الإعدادات من التكوين وسيتم تعديل التوأم بواسطة التكوين التالي ذي الأولوية القصوى.

  • إذا لم يعد التوأم الذي يقوم حاليا بتشغيل هذا التكوين يفي بالشرط المستهدف ولا يفي بالشرط المستهدف لأي تكوينات أخرى، فستتم إزالة الإعدادات من التكوين ولن يتم إجراء أي تغييرات أخرى على التوأم.

استخدم الأمر التالي لتحديث تكوين:

az iot hub configuration update --config-id [configuration id] \
   --hub-name [hub name] --set [property1.property2='value']
  • --config-id - اسم التكوين الموجود في مركز إنترنت الأشياء.

  • --اسم المحور - اسم مركز إنترنت الأشياء الذي يوجد فيه التكوين. يجب أن يكون المركز موجود في الاشتراك الحالي. قم بالتبديل إلى الاشتراك المطلوب باستخدام الأمر az account set -s [subscription name].

  • --set - تحديث خاصية في التكوين. احرص على تحديث قيم الخصائص التالية:

    • شرط الهدف - على سبيل المثالtargetCondition=tags.location.state='Oregon'

    • التسميات

    • أولوية

حذف تكوين

عند حذف تكوين، يتولى أي توائم للجهاز أو توائم الوحدة النمطية تكوينهم التالي ذي الأولوية القصوى. إذا لم يستوف التوائم الشرط المستهدف لأي تكوين آخر، فلن يتم تطبيق أي إعدادات أخرى.

استخدم الأمر التالي لحَذف تكوين:

az iot hub configuration delete --config-id [configuration id] \
   --hub-name [hub name] 
  • --config-id - اسم التكوين الموجود في مركز إنترنت الأشياء.

  • --اسم المحور - اسم مركز إنترنت الأشياء الذي يوجد فيه التكوين. يجب أن يكون المركز موجود في الاشتراك الحالي. قم بالتبديل إلى الاشتراك المطلوب باستخدام الأمر az account set -s [subscription name].

الخطوات التالية

في هذه المقالة، تعلمت كيفية تكوين أجهزة إنترنت الأشياء ومراقبتها على نطاق واسع. اتبع هذه الروابط لمعرفة المزيد حول إدارة Azure IoT Hub:

لمزيد من استكشاف إمكانات IoT Hub، راجع:

لاستكشاف استخدام خدمة توفير الأجهزة IoT Hub لتمكين إدارة الحسابات بدون لمس وفي الوقت المناسب، راجع: