التشغيل السريع: إنشاء وظيفة Azure Stream Analytics باستخدام Visual Studio Code

يوضح لك هذا التشغيل السريع كيفية إنشاء مهمة Azure Stream Analytics (ASA) وتشغيلها وإرسالها باستخدام ملحق ASA Tools ل Visual Studio Code في جهازك المحلي. تتعلم إنشاء وظيفة ASA تقرأ بيانات الدفق في الوقت الحقيقي من IoT Hub وتصفية الأحداث بدرجة حرارة أكبر من 27 درجة. يتم إرسال نتائج الإخراج إلى ملف في تخزين كائن ثنائي كبير الحجم. يتم إنشاء بيانات الإدخال المستخدمة في هذه البداية السريعة بواسطة جهاز محاكاة Raspberry Pi عبر الإنترنت.

ملاحظة

لا تدعم أدوات Visual Studio Code الوظائف في مناطق شرق الصين وشمال الصين ووسط ألمانيا وشمال شرق ألمانيا.

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

تثبيت ملحق أدوات Azure Stream Analytics

  1. افتح Visual Studio Code (VS Code).

  2. من الملحقات في الجزء الأيمن، ابحث عن stream analytics وحدد Install على ملحق Azure Stream Analytics Tools .

    لقطة شاشة تعرض صفحة

  3. بعد تثبيته، حدد أيقونة Azure على شريط النشاط وسجل الدخول إلى Azure.

    لقطة شاشة تعرض كيفية تسجيل الدخول إلى Azure.

  4. بمجرد تسجيل الدخول، يمكنك مشاهدة الاشتراكات ضمن حساب Azure الخاص بك.

ملاحظة

سيقوم ملحق ASA Tools بتسجيل الدخول تلقائيا في كل مرة تفتح فيها VS Code. إذا كان حسابك يحتوي على مصادقة ثنائية، نوصي باستخدام مصادقة الهاتف بدلا من استخدام رمز PIN. لتسجيل الخروج من حساب Azure الخاص بك، اضغط Ctrl + Shift + P وأدخل Azure: Sign Out.

أعد بيانات الإدخال

يجب إعداد بيانات الإدخال قبل تحديد وظيفة Stream Analytics. تُستوعب بيانات مستشعر الوقت الفعلي في IoT Hub، والذي يُكون لاحقًا كمدخل للوظيفة. لإعداد بيانات الإدخال المطلوبة من قبل الوظيفة، اتبع الخطوات التالية:

  1. تسجيل الدخول إلى ⁧⁩مدخل Microsoft Azure⁧⁩.

  2. حدد Create a resource > Internet of Things > IoT Hub.

    لقطة شاشة تعرض صفحة

  3. في صفحة IoT Hub ، أدخل المعلومات التالية:

    • الاشتراك، حدد اشتراك Azure الخاص بك.
    • مجموعة الموارد، حدد مجموعة موارد موجودة أو أنشئ مجموعة موارد جديدة.
    • اسم مركز IoT، أدخل اسما لمركز IoT الخاص بك.
    • المنطقة، حدد المنطقة الأقرب إليك.

    لقطة شاشة تعرض صفحة

  4. انتقل إلى صفحة الإدارة ، لطبقة التسعير والمقياس، حدد F1: المستوى المجاني، إذا كان لا يزال متوفرا في اشتراكك. لمزيد من المعلومات، راجع ⁧⁩تسعير Azure IoT Hub⁧⁩.

    لقطة شاشة تعرض صفحة إدارة IoT Hub.

  5. حدد Review + create. راجع معلوماتك عن مركز IoT، وحدد ⁧⁩إنشاء⁧⁩. قد تستغرق هذه العملية بضع دقائق لتوزيع مركز IoT الخاص بك.

  6. بعد إنشاء مركز IoT، حدد Go to resource للانتقال إلى صفحة IoT Hub . '

  7. في صفحة IoT Hub ، حدد Devices في القائمة اليسرى، ثم حدد + Add Device.

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

  8. أدخل معرف الجهاز وحدد حفظ.

    لقطة شاشة تعرض صفحة

  9. بمجرد إنشاء الجهاز، يجب أن ترى الجهاز من قائمة "أجهزة إنترنت الأشياء". حدد زر "تحديث" على الصفحة إذا لم تتمكن من رؤيته.

    لقطة شاشة تعرض اختيار الجهاز من صفحة

  10. حدد جهازك من القائمة. انسخ سلسلة الاتصال الأساسية واحفظها في مفكرة لاستخدامها لاحقا.

    لقطة شاشة تعرض سلسلة الاتصال الأساسية للجهاز الذي أنشأته.

تشغيل محاكي IoT

  1. افتح Raspberry Pi Azure IoT Online Simulator في علامة تبويب متصفح جديدة.

  2. استبدل العنصر النائب في السطر 15 بسلسلة اتصال جهاز مركز IoT التي قمت بحفظها سابقًا.

  3. حدد ⁧⁩تشغيل⁧⁩. يجب أن يُظهر الإخراج بيانات الاستشعار والرسائل التي يتم إرسالها إلى مركز IoT الخاص بك.

    لقطة شاشة تعرض Raspberry Pi Azure IoT Online Simulator مع الإخراج.

إنشاء مخزن بيانات ثنائية كبيرة

  1. من الزاوية العلوية اليمنى بمدخل Azure، حدد ⁧⁩إنشاء مورد⁧⁩⁧>⁩⁧⁩مخزن⁧⁩⁧>⁩⁧⁩حساب التخزين⁧⁩.

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

  2. في الجزء ⁧⁩إنشاء حساب تخزين⁧⁩، أدخل اسم حساب التخزين وموقعه ومجموعة الموارد. اختر نفس الموقع ومجموعة الموارد الخاصين بمركز IoT الذي أنشأته. ثم حدد Review and Create لإنشاء حساب التخزين.

    لقطة شاشة تعرض صفحة

  3. في صفحة "حساب التخزين"، حدد "الحاويات" في القائمة اليسرى، ثم حدد "+ حاوية" في شريط الأوامر.

    لقطة شاشة تعرض صفحة

  4. من صفحة "حاوية جديدة"، أدخل "اسماً" للحاوية، واترك "مستوى الوصول العام" على "خاص (دون وصول مجهول)"، وحدد "موافق".

    لقطة شاشة تعرض صفحة إنشاء حاوية كائن ثنائي كبير الحجم.

إنشاء مشروع Stream Analytics

  1. في Visual Studio Code، اضغط على Ctrl+Shift+P وأدخل ASA: إنشاء مشروع جديد.

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

  2. أدخل اسم مشروعك، مثل ⁧⁩myASAproj⁧⁩، وحدد مجلدًا لمشروعك.

    لقطة شاشة تعرض إدخال اسم مشروع ASA.

  3. تتم إضافة مشروع ASA إلى مساحة العمل الخاصة بك. يتكون من ثلاثة مجلدات: المدخلاتوالمخرجاتوالوظائف. كما أن به برنامج نصي للاستعلام ⁧⁩(*.asaql)⁧⁩، وملف ⁧⁩JobConfig.json⁧⁩، وملف تكوين ⁧⁩asaproj.json⁧⁩.

    لقطة شاشة تعرض ملفات مشروع Stream Analytics في Visual Studio Code.

    يحتوي ملف asaproj.json على المدخلات والمخرجات وإعدادات تكوين الوظيفة لإرسال مهمة Stream Analytics إلى Azure.

    ملاحظة

    عند إضافة المدخلات والمخرجات من لوحة الأوامر، تتم إضافة المسارات المطابقة إلى ⁧⁩asaproj.json⁧⁩ تلقائيًا. إذا قمت بإضافة أو إزالة المدخلات أو المخرجات على القرص مباشرة، فأنت تحتاج إلى إضافتها أو إزالتها يدويًا من ⁧⁩asaproj.json⁧⁩. يمكنك اختيار وضع المدخلات والمخرجات في مكان واحد، ثم الرجوع إليها في وظائف مختلفة عن طريق تحديد المسارات في كل ملف من ملفات ⁧⁩asaproj.json⁧⁩.

حدد استعلام التحويل

  1. افتح ملف myASAproj.asaql وأضف الاستعلام التالي:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    لقطة شاشة تعرض استعلام التحويل.

تكوين إدخال المهمة

  1. انقر بزر الماوس الأيمن فوق مجلد ⁧⁩الإدخالات⁧⁩ في مشروع Stream Analytics الخاص بك. ثم حدد ⁧⁩ASA: إضافة إدخال⁧⁩ من قائمة السياق.

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

    أو اضغط على Ctrl+Shift+P لفتح لوحة الأوامر وإدخال ASA: إضافة إدخال.

  2. اختر ⁧⁩مركز IoT⁧⁩ لنوع الإدخال.

    لقطة شاشة تعرض تحديد مركز إنترنت الأشياء في لوحة أوامر VS Code.

  3. حدد برنامج نصي ASA *.asaqlواشتراكات Azure من القائمة المنسدلة، ثم اضغط على ENTER.

  4. ضمن مجلد Inputs ، سترى ملف IoTHub1.json تم إنشاؤه. استبدل الإعدادات بالقيم المقترحة التالية واحتفظ بالقيم الافتراضية للحولات غير المذكورة هنا.

    إعداد القيم المقترحة الوصف
    الاسم إدخال يتم استخدام اسم الإدخال هذا لعبارة FROM في الاستعلام.
    IotHubNamespace spiothub اسم مركز IoT الخاص بك. يتم الكشف عن أسماء مركز IoT تلقائيا إذا قمت بتحديد من اشتراكك.
    SharedAccessPolicyName Iothubowner

    لقطة شاشة تعرض تكوين IoT Hub في VS Code.

  5. حدد معاينة البيانات لمعرفة ما إذا تم تكوين بيانات الإدخال بنجاح لمهمتك. سيجلب عينة من IoT Hub الخاص بك ويظهر في نافذة المعاينة.

    لقطة شاشة تعرض معاينة بيانات الإدخال في مركز إنترنت الأشياء.

تكوين إخراج المهمة

  1. اضغط على Ctrl+Shift+P لفتح لوحة الأوامر وأدخل ASA: إضافة إخراج.

  2. اختر "Data Lake Storage Gen2/مخزن كائن ثنائي كبير الحجم" لنوع المتلقي.

  3. حدد البرنامج النصي للاستعلام باستخدام هذا الإخراج.

  4. أدخل BlobStorage1 كاسم ملف الإخراج.

  5. قم بتحرير الإعدادات باستخدام القيم التالية. احتفظ بالقيم الافتراضية للحقول غير المذكورة هنا.

    الإعداد القيمة المقترحة الوصف
    الاسم المخرجات يتم استخدام اسم الإخراج هذا لعبارة INTO في الاستعلام.
    حساب التخزين spstorageaccount0901 اختر أو أدخل اسم حساب التخزين الخاص بك. يتم اكتشاف أسماء حسابات التخزين تلقائيًا إذا تم إنشاؤها في نفس الاشتراك.
    الحاوية spcontainer حدد الحاوية الموجودة التي قمت بإنشائها في حساب التخزين الخاص بك.

لقطة شاشة تعرض تكوين الإخراج لوظيفة Stream Analytics.

تحويل البرنامج النصي برمجيا وإرساله إلى Azure

يقوم التحويل البرمجي للبرنامج النصي بالتحقق من بناء الجملة، ويقوم بإنشاء قوالب Azure Resource Manager للنشر التلقائي.

  1. انقر بزر الماوس الأيمن فوق البرنامج النصي، وحدد ⁧⁩ASA: التحويل البرمجي للبرنامج النصي⁧⁩.

    لقطة شاشة تعرض خيار تحويل البرنامج النصي من مستكشف Stream Analytics في VS Code.

  2. بعد التحويل البرمجي، سترى مجلد Deploy ضمن مشروعك مع قالبين Resource Manager Azure. يتم استخدام هذين الملفين للنشر التلقائي.

    لقطة شاشة تعرض قوالب التوزيع التي أُنشئت في مجلد المشروع.

  3. حدد إرسال إلى Azure في محرر الاستعلام.

    لقطة شاشة تعرض زر مهمة الإرسال لإرسال مهمة Stream Analytics إلى Azure.

    ثم اتبع الإرشادات لإكمال العملية: حدد الاشتراك > حدد وظيفة إنشاء مهمة >> جديدة أدخل اسم > المهمة اختر مجموعة الموارد والمنطقة.

  4. حدد Publish to Azure وأكمل. انتظر حتى تفتح علامة تبويب جديدة Cloud Job View تعرض حالة وظيفتك.

    لقطة شاشة تعرض زر النشر إلى Azure في VS Code.

بدء وظيفة Stream Analytics، والتحقق من الإخراج

  1. في علامة التبويب Cloud Job View ، حدد Start لتشغيل وظيفتك في السحابة. قد تستغرق هذه العملية بضع دقائق لتكتمل.

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

  2. إذا بدأت وظيفتك بنجاح، يتم تغيير حالة الوظيفة إلى قيد التشغيل. يمكنك مشاهدة رسم تخطيطي منطقي يوضح كيفية تشغيل وظيفة ASA.

    لقطة شاشة تعرض حالة تشغيل الوظيفة في VS Code.

  3. لعرض نتائج الإخراج، يمكنك فتح تخزين الكائن الثنائي كبير الحجم في ملحق Visual Studio Code أو في مدخل Microsoft Azure.

    لقطة شاشة تعرض ملف الإخراج في حاوية كائن ثنائي كبير الحجم.

    نزّل الملف وافتحه لمشاهدة الإخراج.

    {"messageId":11,"deviceId":"Raspberry Pi Web Client","temperature":28.165519323167562,"humidity":76.875393581654379,"EventProcessedUtcTime":"2022-09-01T22:53:58.1015921Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:52:57.6250000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:52:57.6290000Z"}}
    {"messageId":14,"deviceId":"Raspberry Pi Web Client","temperature":29.014941877871451,"humidity":64.93477299527828,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:03.6100000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:03.6140000Z"}}
    {"messageId":17,"deviceId":"Raspberry Pi Web Client","temperature":28.032846241745975,"humidity":66.146114343897338,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:19.5960000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:19.5830000Z"}}
    {"messageId":18,"deviceId":"Raspberry Pi Web Client","temperature":30.176185593576143,"humidity":72.697359909427419,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:21.6120000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:21.6140000Z"}}
    {"messageId":20,"deviceId":"Raspberry Pi Web Client","temperature":27.851894248213021,"humidity":71.610229530268214,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:25.6270000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:25.6140000Z"}}
    {"messageId":21,"deviceId":"Raspberry Pi Web Client","temperature":27.718624694772238,"humidity":66.540445035685153,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:48.0820000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:48.0830000Z"}}
    {"messageId":22,"deviceId":"Raspberry Pi Web Client","temperature":27.7849054424326,"humidity":74.300662748167085,"EventProcessedUtcTime":"2022-09-01T22:54:09.3393532Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:09.2390000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:09.2400000Z"}}
    {"messageId":28,"deviceId":"Raspberry Pi Web Client","temperature":30.839892925680324,"humidity":76.237611741451786,"EventProcessedUtcTime":"2022-09-01T22:54:47.8053253Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:47.6180000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:47.6150000Z"}}
    {"messageId":29,"deviceId":"Raspberry Pi Web Client","temperature":30.561040300759053,"humidity":78.3845172058103,"EventProcessedUtcTime":"2022-09-01T22:54:49.8070489Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:49.6030000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:49.5990000Z"}}
    {"messageId":31,"deviceId":"Raspberry Pi Web Client","temperature":28.163585438418679,"humidity":60.0511571297096,"EventProcessedUtcTime":"2022-09-01T22:55:25.1528729Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:24.9050000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:24.9120000Z"}}
    {"messageId":32,"deviceId":"Raspberry Pi Web Client","temperature":31.00503387156985,"humidity":78.68821066044552,"EventProcessedUtcTime":"2022-09-01T22:55:43.2652127Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:43.0480000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:43.0520000Z"}}
    

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

احذف مجموعة الموارد ووظيفة Stream Analytics وجميع الموارد ذات الصلة عندما لا تحتاج لهم. يؤدي حذف الوظيفة إلى تجنب فوترة الوحدات المتدفقة التي تستهلكها الوظيفة. إذا كنت تخطط لاستخدام الوظيفة في المستقبل، يمكن إيقافها، وإعادة تشغيلها لاحقًا عند الحاجة. إذا كنت لا تنوي الاستمرار في استخدام هذه الوظيفة، فاحذف جميع الموارد التي أنشأتها في هذا التشغيل السريع باستخدام الخطوات التالية:

  1. من القائمة اليمنى في مدخل Azure، حدد ⁧⁩مجموعات الموارد⁧⁩، ثم حدد اسم المورد الذي أنشأته.

  2. في صفحة مجموعة الموارد الخاصة بك، حدد ⁧⁩حذف⁧⁩. أدخل اسم مجموعة الموارد لحذفها في مربع النص، ثم حدد ⁧⁩حذف⁧⁩.

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

لمعرفة المزيد حول ملحق أدوات ASA ل Visual Studio Code، تابع المقالات التالية: