مشاركة عبر


التشغيل السريع: إنشاء وظيفة 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. من 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.

تشغيل محاكي IoT

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

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

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

    لقطة شاشة تعرض صفحة **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 Code، اضغط على Ctrl+Shift+P وأدخل ASA: Create New Project.

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

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

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

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

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

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

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

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

  5. ضمن مجلد Inputs ، سترى إنشاء ملف IoTHub1.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).

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

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

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

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

    لقطة شاشة تعرض زر إرسال مهمة لإرسال مهمة Stream Analytics إلى 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 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. من القائمة اليسرى في مدخل Microsoft Azure، حدد Resource groups ثم حدد اسم المورد الذي قمت بإنشائه.

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

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

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