استخدام وظائف Azure لتصفية البيانات على Edge

مكتمل

لتقليل كمية القياس عن بُعد المرسلة إلى تطبيق IoT Central الخاص بك، فأنت تريد تصفية البيانات الموجودة على جهاز IoT Edge الخاص بك قبل إرسالها.

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

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

ما هو Azure Functions؟

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

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

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

كيفية إنشاء وحدة IoT Edge التي تحتوي على وظيفة

يمكنك استخدام لغات متعددة لإنشاء وظيفة لوظائف Azure. توضح الخطوات التالية كيفية إنشاء وحدة IoT Edge التي تحتوي على وظيفة تم تنفيذها في C#‎:

  1. قم بإنشاء مشروع يتضمن دعم لوحدة Azure Function. يمكنك إنشاء مثل هذا المشروع باستخدام التعليمات البرمجية Visual Studio أو في سطر الأوامر باستخدام الأمرdotnet.
  2. تنفيذ منطق العمل للدالة في C#‎.
  3. إنشاء المشروع لإنشاء صورة Docker الذي يحتوي على الدالة ووقت تشغيل Azure Functions المطلوب.
  4. تحميل صورة Docker إلى تسجيل حاوية.
  5. تعديل بيان التوزيع لجهاز IoT Edge لتضمين الوحدة النمطية الجديدة. يتضمن التكوين عنوان صورة Docker وكيفية تفاعل وحدة الوظيفة مع الوحدات النمطية الأخرى في وقت تشغيل IoT Edge.

يعرض المقتطف التالي modules مقطعا مع الوحدة النمطية الجديدة filterfunction في بيان النشر المحدث:

"modules": {
    "SimulatedTemperatureSensor": {
    "version": "1.0",
    "type": "docker",
    "status": "running",
    "restartPolicy": "always",
    "settings": {
        "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0",
        "createOptions": "{}"
    }
    },
    "filterfunction": {
        "settings": {
            "image": "<Your Azure Container Registry>/filterfunction:0.0.2-amd64",
            "createOptions": ""
        },
        "type": "docker",
        "status": "running",
        "restartPolicy": "always",
        "version": "1.0"
    }
}

اعتماداً على سجل الحاوية الذي تستخدمه وتكوينه، قد يحتاج بيان التوزيع الخاص بك إلى تضمين بيانات الاعتماد للوصول إلى التسجيل.

يوضح المقتطف التالي كيفية توجيه القياس عن بعد بين الوحدات النمطية في بيان النشر المحدث:

"routes": {
    "telemetryToIoTCentral": "FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream",
    "FilterFunctionToIoTCentral": "FROM /messages/modules/filterfunction/outputs/* INTO $upstream",
    "sensorToFilterFunction": "FROM /messages/modules/SimulatedTemperatureSensor/outputs/temperatureOutput INTO BrokeredEndpoint(\"/modules/filterfunction/inputs/input1\")"
},

تحديث قالب الجهاز في IoTCeentral

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

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

استخدام وظائف Azure على Edge

1.

أين يمكنك تشغيل دالة Azure؟

2.

ما هو دور التوجيه في بيان النشر؟