مشاركة عبر


البداية السريعة: أنشئ وظيفة تحليلات التدفق باستخدام كود Visual Studio

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

إشعار

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

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

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

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

  2. من Extensions في الجزء الأيمن، ابحث عن 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.

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

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

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. حدد Create a resource. في صفحة "إنشاء مورد"، حدد "إنترنت الأشياء>مركز إنترنت الأشياء".

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

  3. اتبع الخطوات التالية في صفحة "مركز إنترنت الأشياء":

    1. للاشتراك: تحديد اشتراك Azure الخاص بك.
    2. بالنسبة إلى "مجموعة الموارد"، حدد مجموعة الموارد الموجودة أو أنشئ مجموعة موارد جديدة.
    3. بالنسبة إلى "اسم مركز إنترنت الأشياء"، أدخل اسمًا لمركز إنترنت الأشياء.
    4. بالنسبة إلى "المنطقة"، حدد المنطقة الأقرب إليك.
    5. بالنسبة للدرجة، اختر مجاني إذا كان لا يزال متاحا على اشتراكك. لمزيد من المعلومات، راجع تسعير مركز IoT.
    6. بالنسبة إلى حد الرسائل اليومية، احتفظ بالقيمة الافتراضية.
    7. حدد Next: Networking في أسفل الصفحة.

    لقطة شاشة تظهر صفحة مركز إنترنت الأشياء للإنشاء.

  4. حدد "Review + create". راجع معلومات مركز IoT وحدد إنشاء. قد يستغرق مركز "انترنت الأشياء" بضع دقائق لإنشائها. يمكن مراقبة التقدم في جزء الإعلامات.

  5. بعد إنشاء المورد (مركز إنترنت الأشياء)، اختر "الذهاب إلى المصدر " للذهاب إلى صفحة مركز إنترنت الأشياء.

  6. في صفحة "مركز إنترنت الأشياء"، حدد "الأجهزة" في القائمة اليسرى، ثم حدد "+ إضافة جهاز".

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

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

    لقطة شاشة تظهر صفحة إنشاء جهاز.

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

    لقطة شاشة تعرض قائمة الأجهزة.

  9. حدد جهازك من القائمة.

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

    لقطة شاشة تعرض زر النسخ بجوار سلسلة اتصال الجهاز.

تشغيل محاكي IoT

  1. افتح Raspberry Pi Azure IoT Online Simulator .

  2. استبدل العنصر المؤقت في السطر 15 بسلسلة اتصال أجهزة Azure IoT Hub التي حفظتها في قسم سابق.

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

    لقطة شاشة تعرض صفحة **Raspberry Pi Azure IoT Online Simulator** مع نموذج الاستعلام.

    هام

    حدد إعادة تعيين بعد بضع دقائق لإعادة تعيين سلسلة الاتصال.

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

  1. من الزاوية العلوية اليمنى من مدخل Microsoft Azure، حدد Create a resource>>

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

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

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

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

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

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

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

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

  1. في كود Visual Studio، اختر لوحة أوامر>، وأدخل ASA: إنشاء مشروع جديد.

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

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

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

  3. يضيف كود Visual Studio مشروع 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. انقر بزر الماوس الأيمن فوق مجلد Inputs في مشروع Stream Analytics. ثم حدد ASA: إضافة إدخال من قائمة السياق.

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

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

  2. اختر IoT Hub لنوع الإدخال.

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

  3. اختر تحديد من اشتراكات Azure من القائمة المنسدلة، ثم اضغط على ENTER.

  4. أدخل إدخالا للاسم، ثم اضغط على ENTER.

  5. تحت مجلد المدخلات ، ترى ملف Input.json يتم إنشاؤه.

  6. في ملف JSON، تأكد من تحديد Input Name.

  7. في محرر JSON Input.json، اختر تحديد من اشتراكاتك، ثم حدد اشتراك Azure الذي يحتوي على مركز IoT.

    لقطة شاشة تعرض محرر JSON مع رابط Select from your subscriptions.

  8. في محرر JSON، اختر Select an IoT Hub، ثم حدد مركز IoT الذي أنشأته.

    لقطة شاشة تعرض محرر JSON مع تحديد ارتباط IoT Hub.

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

  10. SharedAccessPolicyKey يجب تعيين القيمة تلقائيا.

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

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

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

  1. انقر بزر الماوس الأيمن فوق Outputs في المستكشف، وحدد ASA: Add Output.
  2. اختر Data Lake Storage Gen2/Blob Storage لنوع المتلقي في القائمة المنسدلة.
  3. اختر الاختيار من بين اشتراكات Azure.
  4. أدخل Output لاسم الاسم المستعار واضغط على ENTER. يتم استخدام اسم الإخراج هذا ل عبارة INTO في الاستعلام.
  5. في محرر JSON الخاص بOutput.json، اختر الاختيار من بين اشتراكاتك، ثم اختر اشتراك Azure الذي يحتوي على حساب Azure Storage.
  6. إذا كنت بحاجة إلى تغيير حساب التخزين الذي يتم ملؤه تلقائيا، فاختر تحديد حساب تخزين، ثم حدد حساب Azure Storage الخاص بك. يتم اكتشاف أسماء حسابات التخزين تلقائيًا إذا تم إنشاؤها في نفس الاشتراك.
  7. إذا كنت بحاجة إلى تغيير اسم الحاوية، فاختر Select a container، وحدد حاوية blob التي أنشأتها.

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

قم بتجميع السكريبت وتقديمه إلى Azure

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

  1. انقر بزر الماوس الأيمن فوق ملف البرنامج النصي في نافذة المستكشف، وأشر إلى ASA: Compile Script، ثم حدد ASA: ARM Template V2 (recommended).

    لقطة شاشة لخيار تجميع السكريبت من مستكشف تحليلات التدفق في كود VS.

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

    لقطة شاشة لقوالب النشر المولدة في مجلد المشروع.

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

    لقطة شاشة لزر إرسال وظيفة لتقديم وظيفة تحليلات التدفق إلى Azure.

  4. في نافذة إرسال ، اتبع الخطوات التالية:

    1. حدد اشتراك Azure الخاص بك.

    2. حدد مجموعة موارد Azure.

    3. حدد المنطقة التي تريد إنشاء وظيفة Stream Analytics فيها.

    4. ثم حدد Submit.

      لقطة شاشة لخيارات الإرسال.

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

    لقطة شاشة لزر النشر في Azure في VS Code.

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

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

    لقطة شاشة لزر بدء المهمة في صفحة عرض السحابة.

  2. في نافذة Start streaming job ، حدد OK. قد تستغرق هذه العملية بضع دقائق حتى تكتمل.

    لقطة شاشة لنافذة وظيفة بدء البث.

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

    لقطة شاشة لحالة تشغيل المهمة في VS Code.

  4. لعرض نتائج الإخراج، افتح تخزين الكتلة في إضافة كود Visual Studio أو في بوابة Azure.

    لقطة شاشة لملف الإخراج في حاوية Blob.

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

    {"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"}}
    

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

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

  1. من القائمة اليسرى في مدخل Microsoft Azure، حدد Resource groups ثم حدد اسم المورد الذي قمت بإنشائه.

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

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

لمعرفة المزيد عن إضافة ASA Tools لكود Visual Studio، راجع المقالات التالية: