بداية سريعة: انشر أول وحدة IoT Edge على جهاز Linux افتراضي

ينطبق على: أيقونة نعم IoT Edge 1.1

هام

كان تاريخ انتهاء دعم IoT Edge 1.1 هو 13 ديسمبر 2022. تحقق من دورة حياة المنتج من Microsoft للحصول على معلومات حول كيفية دعم هذا المنتج أو الخدمة أو التقنية أو API. لمزيد من المعلومات حول التحديث إلى أحدث إصدار من IoT Edge، راجع تحديث IoT Edge.

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

ستتعلم في هذه البداية السريعة كيفية:

  • إنشاء مركز IoT.
  • تسجيل جهاز IoT Edge في مركز IoT الخاص بك.
  • تثبيت وقت تشغيل IoT Edge وبدء تشغيله على جهاز ظاهري.
  • نشر وحدة عن بعد لجهاز IoT Edge.

رسم تخطيطي - بنية بداية سريعة للجهاز والسحابة

يرشدك هذا التشغيل السريع خلال إنشاء جهاز Linux ظاهري تم تكوينه ليكون جهاز IoT Edge. بعد ذلك، تقوم بنشر وحدة نمطية من مدخل Microsoft Azure على جهازك. الوحدة النمطية المستخدمة في هذا التشغيل السريع هي أداة استشعار محاكاة تولد بيانات درجة الحرارة والرطوبة والضغط. تعتمد البرامج التعليمية الأخرى لـ Azure IoT Edge على العمل الذي تقوم به هنا من خلال نشر وحدات نمطية إضافية تحلل البيانات المحاكاة لرؤى الأعمال.

في حال لم يكن لديك اشتراك Azure نشط، يُمكنك إنشاء حساب مجاني قبل البدء.

المتطلبات الأساسية

تحضير البيئة الخاصة بك لـAzure CLI.

  • استخدم بيئة Bash في Azure Cloud Shell.

    Launch Cloud Shell في نافذة جديدة

  • إذا كنت تفضل تثبيت CLI Azure لتشغيل الأوامر المرجعية CLI.

    • إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات إضافية لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.

    • عند مطالبتك، يوصى بتثبيت امتدادات Azure CLI عند الاستخدام الأول. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.

    • يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.

موارد السحابة:

  • مجموعة موارد لإدارة جميع الموارد التي تستخدمها في هذا التشغيل السريع. نستخدم مثال اسم مجموعة الموارد IoTEdgeResources خلال هذا التشغيل السريع والبرامج التعليمية التالية.

    az group create --name IoTEdgeResources --location westus2
    

إنشاء مركز IoT

ابدأ التشغيل السريع عن طريق إنشاء مركز IoT باستخدام Azure CLI.

رسم تخطيطي - إنشاء مركز IoT في السحابة

يعمل المستوى المجاني من IoT Hub لهذا التشغيل السريع. إذا كنت قد استخدمت IoT Hub في الماضي ولديك مركز مُنشأ بالفعل، يُمكنك استخدام مركز IoT هذا.

تقوم التعليمة البرمجية التالية بإنشاء لوحة وصل F1مجانية في مجموعة الموارد IoTEdgeResources. استبدل {hub_name} باسم فريد لـ IoT hub. قد يستغرق إنشاء IoT hub بضع دقائق.

az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2

إذا حدث خطأ بسبب وجود مركز مجاني واحد بالفعل في اشتراكك، قم بتغيير SKU إلى S1. يمكن أن يكون لكل اشتراك مركز IoT مجاني واحد فقط. إذا حدث خطأ بسبب عدم توفر اسم IoT hub، فهذا يعني أن هناك شخصًا آخر لديه بالفعل مركز بهذا الاسم. جرب اسماً جديداً.

تسجيل جهاز IoT Edge

سجل جهاز IoT Edge مع IoT hub الذي تم إنشاؤه حديثاً.

رسم تخطيطي - تسجيل جهاز بهوية IoT Hub

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

نظرًا لأن أجهزة IoT Edge تتصرف ويمكن إدارتها بشكل مختلف عن أجهزة IoT النموذجية، أعلن أن هذه الهوية تخص جهاز IoT Edge بعلامة --edge-enabled.

  1. في Azure Cloud Shell، أدخل الأمر التالي لإنشاء جهاز باسم myEdgeDevice في الموزع الخاص بك.

    az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}
    

    إذا تلقيت خطأ حول مفاتيح نهج iothubowner، فتأكد من تشغيل Cloud Shell أحدث إصدار من ملحق azure-iot .

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

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
    

    عرض سلسلة الاتصال من إخراج CLI

كيفية تكوين جهاز IoT Edge

أنشئ جهازًا افتراضيًّا مع وقت تشغيل Azure IoT Edge عليه.

رسم تخطيطي - ابدأ وقت التشغيل على الجهاز

يتم نشر وقت تشغيل حافة IoT على جميع أجهزة IoT Edge. يحتوي على ثلاثة عناصر. يبدأ برنامج أمان IoT Edge في كل مرة يقوم فيها جهاز IoT Edge بالتمهيد والإقلاع للجهاز عن طريق بدء وكيل IoT Edge. يعمل IoT Edge agent على تسهيل نشر الوحدات ومراقبتها على جهاز IoT Edge، بما في ذلك محور IoT Edge. يدير IoT Edge hub الاتصالات بين الوحدات على جهاز IoT Edge، وبين الجهاز وIoT Hub.

أثناء تكوين وقت التشغيل، يمكنك توفير سلسلة اتصال جهاز. هذه هي السلسلة التي قمت باستردادها من Azure CLI. تربط هذه السلسلة جهازك الفعلي بهوية جهاز IoT Edge في Azure.

استخدام جهاز IoT Edge

يستخدم هذا القسم قالب Azure Resource Manager لإنشاء جهاز ظاهري جديد وتثبيت وقت تشغيل IoT Edge عليه. إذا كنت تريد استخدام جهاز Linux الخاص بك بدلاً من ذلك، فيمكنك اتباع خطوات التثبيت في تثبيت وقت تشغيل Azure IoT Edge، ثم العودة إلى هذا التشغيل السريع.

استخدم الأمر CLI التالي لإنشاء جهاز IoT Edge الخاص بك استنادًا إلى قالب iotedge-vm-deploy الذي تم إنشاؤه مُسبقًا.

  • بالنسبة لمستخدمي bash أو Cloud Shell، انسخ الأمر التالي في محرر نصوص، واستبدل نص العنصر النائب بمعلوماتك، ثم انسخه في نافذة bash أو Cloud Shell:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" \
    --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' \
    --parameters adminUsername='azureUser' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
    
  • بالنسبة لمستخدمي PowerShell، انسخ الأمر التالي في نافذة PowerShell، ثم استبدل نص العنصر النائب بمعلوماتك الخاصة:

    az deployment group create `
    --resource-group IoTEdgeResources `
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" `
    --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' `
    --parameters adminUsername='azureUser' `
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) `
    --parameters authenticationType='password' `
    --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
    

يأخذ هذا القالب المعلمات التالية:

المعلمة ‏‏الوصف‬
مجموعة الموارد مجموعة الموارد التي سيتم إنشاء الموارد فيها. استخدم IoTEdgeResources الافتراضية التي استخدمناها خلال هذه المقالة أو قدم اسم مجموعة موارد موجودة في اشتراكك.
نموذج - uri مؤشر إلى قالب Azure Resource Manager الذي نستخدمه.
dnsLabelPrefix سلسلة سيتم استخدامها لإنشاء اسم مضيف الجهاز الظاهري. استبدل نص العنصر النائب باسم لجهازك الظاهري.
اسم المستخدم المسؤول اسم مستخدم لحساب المسؤول للجهاز الظاهري. استخدم المثال azureUser أو قدم اسم مستخدم جديدًا.
deviceConnectionString سلسلة الاتصال من هوية الجهاز في IoT Hub، والتي تُستخدم لتكوين وقت تشغيل IoT Edge على الجهاز الظاهري. يستحوذ أمر CLI داخل هذه المعلمة على سلسلة الاتصال نيابة عنك. استبدل نص العنصر النائب باسم محور IoT الخاص بك.
نوع المصادقة طريقة المصادقة لحساب المسؤول. يستخدم هذا التشغيل السريع مصادقة كلمة المرور ، ولكن يمكنك أيضا تعيين هذه المعلمة إلى sshPublicKey.
adminPasswordOrKey كلمة المرور أو قيمة مفتاح SSH لحساب المسؤول. استبدل نص العنصر النائب بكلمة مرور آمنة. يجب أن تتكون كلمة المرور الخاصة بك من 12 حرفًا على الأقل وتحتوي على ثلاثة من أربعة مما يلي: أحرف صغيرة وأحرف كبيرة وأرقام وأحرف خاصة.

بمجرد اكتمال التوزيع، يجب أن تتلقى ناتجًا بتنسيق JSON في CLI الذي يحتوي على معلومات SSH للاتصال بالجهاز الظاهري. انسخ قيمة إدخال SSH العامة لقسم المخرجات:

استرداد قيمة ssh العامة من الإخراج

اعرض حالة وقت تشغيل IoT Edge

تتم بقية الأوامر في هذا التشغيل السريع على جهاز IoT Edge نفسه، بحيث يمكنك مشاهدة ما يحدث على الجهاز. إذا كنت تستخدم جهازًا ظاهريًّا، فاتصل بهذا الجهاز الآن باستخدام اسم مستخدم المسؤول الذي قمت بإعداده واسم DNS الذي تم إخراجه بواسطة أمر النشر. يمكنك أيضًا العثور على اسم DNS على صفحة نظرة عامة على جهازك الظاهري في مدخل Microsoft Azure. استخدم الأمر التالي للاتصال بجهازك الظاهري. استبدال {admin username}و{DNS name} بالقيم الخاصة بك.

ssh {admin username}@{DNS name}

بمجرد الاتصال بجهازك الظاهري، تحقق من أن وقت التشغيل قد تم تثبيته وتكوينه بنجاح على جهاز IoT Edge الخاص بك.

  1. تحقق لمعرفة أن برنامج أمان IoT Edge يعمل كخدمة نظام.

    sudo systemctl status iotedge
    

    شاهد البرنامج الخفي لـ IoT Edge وهو يعمل كخدمة نظام

    تلميح

    أنت بحاجة إلى امتيازات مرتفعة لتشغيل الأوامر iotedge. بمجرد تسجيل الخروج من جهازك وإعادة تسجيل الدخول في المرة الأولى بعد تثبيت وقت تشغيل IoT Edge، يتم تحديث أذوناتك تلقائيًّا. حتى ذلك الحين، استخدم sudo أمام الأوامر.

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

    journalctl -u iotedge
    
  3. عرض جميع الوحدات النمطية التي تعمل على جهاز IoT Edge. فور بدء الخدمة لأول مرة، يجب أن ترى فقط الوحدة النمطية edgeAgent قيد التشغيل. تعمل الوحدة النمطية edgeAgent بشكل افتراضي وتساعد على تثبيت أي وحدات إضافية تقوم بنشرها على جهازك وتشغيلها.

    sudo iotedge list
    

    عرض وحدة واحدة على جهازك

تم تكوين جهاز IoT Edge الآن. إنه جاهز لتشغيل الوحدات النمطية التي يتم استخدامها على السحابة.

نشر الوحدة النمطية

قم بإدارة جهاز Azure IoT Edge الخاص بك من السحابة لنشر وحدة نمطية سترسل بيانات القياس عن بُعد إلى IoT Hub.

رسم تخطيطي - نشر الوحدة من السحابة إلى الجهاز

تتمثّل إحدى القدرات الرئيسية لـ Azure IoT Edge في نشر التعليمات البرمجية على أجهزة IoT Edge الخاصة بك من السحابة. وحدات IoT Edge النمطية عبارة عن حِزم تنفيذية يتم تطبيقها كحاويات. في هذا القسم، ستنشر وحدة نمطية مُنشأة مسبقاً من قسم "IoT Edge Modules" في Azure Marketplaceمن Azure IoT Hub مباشرةً.

تحاكي الوحدة النمطية التي تقوم بنشرها في هذا القسم أداة استشعار وترسل البيانات التي تم إنشاؤها. تعد هذه الوحدة جزءًا مفيدًا من التعليمة البرمجية عندما تبدأ في استخدام IoT Edge لأنه يمكنك استخدام البيانات المحاكاة للتطوير والاختبار. إذا كنت تريد أن ترى دور هذه الوحدة النمطية بالضبط، يُمكنك عرض التعليمات البرمجية المصدر لأداة استشعار درجة الحرارة التي تمت محاكاتها.

اتبع هذه الخطوات لبدء معالج تعيين الوحدات النمطية لنشر الوحدة النمطية الأولى من Azure Marketplace.

  1. سجل فيمدخل Azure ثم انتقل إلى مركز IoT.

  2. من القائمة على اليسار، ضمن إدارة الجهاز، حدد الأجهزة.

  3. حدد معرف الجهاز لجهاز IoT Edge الهدف من القائمة.

    عند إنشائك جهاز IoT Edge جديدًا، فإنه سيعرض رمز الحالة 417 -- The device's deployment configuration is not set في مدخل Microsoft Azure. هذه الحالة طبيعية، وتعني أن الجهاز جاهز لتلقي وحدة نشر.

  4. في الشريط العلوي، حدد "Set Modules".

    لقطة شاشة تظهر تحديد تعيين الوحدات النمطية.

الوحدات النمطية

تتمثل الخطوة الأولى في المعالج في اختيار الوحدات التي تريد تشغيلها على جهازك.

ضمن "IoT Edge Modules"، وافتح القائمة المنسدلة "Add"، ومن ثمَّ حدد "Marketplace Module".

لقطة شاشة تعرض القائمة المنسدلة

في "IoT Edge Module Marketplace"، ابحث عن الوحدة النمطية Simulated Temperature Sensor وحددها. تُضاف الوحدة النمطية إلى قسم "IoT Edge Modules" مع حالة التشغيل المطلوبة.

حدد "Next: Routes" للمتابعة إلى الخطوة التالية من المعالج.

لقطة شاشة توضح المتابعة إلى الخطوة التالية بعد إضافة الوحدة النمطية.

مسارات

تم إنشاء مسار يسمى SimulatedTemperatureSensorToIoTHub تلقائيا عند إضافة الوحدة النمطية من Azure Marketplace. يرسل هذا المسار جميع الرسائل من وحدة محاكاة درجة الحرارة إلى IoT Hub.

لقطة شاشة تعرض إزالة المسار الافتراضي ثمّ الانتقال إلى الخطوة التالية.

حدّد Next: Review + create.

المراجعة والإنشاء

راجع ملف JSON، ثم حدّد "Create". يحدد ملف JSON جميع الوحدات النمطية التي تنشرها على جهاز IoT Edge الخاص بك. سترى الوحدة النمطية لـ "SimulatedTemperatureSensor" واثنين من الوحدات النمطية لوقت التشغيل، و"edgeAgent" و"edgeHub".

إشعار

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

بعد إنشاء تفاصيل نشر الوحدة النمطية، يعيدك المعالج إلى صفحة تفاصيل الجهاز. اعرض حالة النشر في علامة التبويب "Modules".

يجب أن تشاهد ثلاث وحدات نمطية: $edgeAgent، و$edgeHub، وSimulatedTemperatureSensor. إذا كانت وحدة نمطية واحدة أو أكثر تعرض "YES" ضمن "SPECIFIED IN DEPLOYMENT" ولكن ليس ضمن "REPORTED BY DEVICE"، يعني ذلك أن جهاز IoT Edge الخاص بك لا يزال يبدأ تشغيلها. انتظر بضع دقائق، ثم قم بتحديث الصفحة.

لقطة شاشة تعرض

عرض البيانات التي تم إنشاؤها

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

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

افتح موجه الأوامر على جهاز IoT Edge مرة أخرى، أو استخدم اتصال SSH من Azure CLI. تأكد من أن الوحدة التي تم نشرها من السحابة تعمل على جهاز IoT Edge الخاص بك:

sudo iotedge list

عرض ثلاث وحدات نمطية على جهازك

عرض الرسائل التي يتم إرسالها من وحدة استشعار درجة الحرارة:

sudo iotedge logs SimulatedTemperatureSensor -f

تلميح

أوامر IoT Edge حساسة لحالة الأحرف عند الإشارة إلى أسماء الوحدات.

عرض البيانات من الوحدة النمطية

يمكنك أيضًا مشاهدة الرسائل تصل إلى مركز IoT الخاص بك باستخدام ملحق Azure IoT Hub لـ Visual Studio Code.

تنظيف الموارد

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

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

هام

حذف مجموعة الموارد لا يمكن التراجع عنه.

قم بإزالة مجموعة IoTEdgeResources. قد يستغرق حذف مجموعة موارد بضع دقائق.

az group delete --name IoTEdgeResources --yes

يمكنك تأكيد إزالة مجموعة الموارد عن طريق عرض قائمة مجموعات الموارد.

az group list

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

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

في البرنامج التعليمي التالي، ستتعرف على كيفية مراقبة نشاط وصحة جهازك من مدخل Microsoft Azure.