التشغيل السريع: إنشاء وظيفة 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. إذا لم يكن لديك اشتراك في Azure، فأنشئ حساباً مجانياً.
- Visual Studio Code.
تثبيت ملحق أدوات Azure Stream Analytics
افتح Visual Studio Code (VS Code).
من الملحقات في الجزء الأيمن، ابحث عن stream analytics وحدد Install على ملحق Azure Stream Analytics Tools .
بعد تثبيته، حدد أيقونة Azure على شريط النشاط وسجل الدخول إلى Azure.
بمجرد تسجيل الدخول، يمكنك مشاهدة الاشتراكات ضمن حساب Azure الخاص بك.
ملاحظة
سيقوم ملحق ASA Tools بتسجيل الدخول تلقائيا في كل مرة تفتح فيها VS Code. إذا كان حسابك يحتوي على مصادقة ثنائية، نوصي باستخدام مصادقة الهاتف بدلا من استخدام رمز PIN. لتسجيل الخروج من حساب Azure الخاص بك، اضغط Ctrl + Shift + P
وأدخل Azure: Sign Out
.
أعد بيانات الإدخال
يجب إعداد بيانات الإدخال قبل تحديد وظيفة Stream Analytics. تُستوعب بيانات مستشعر الوقت الفعلي في IoT Hub، والذي يُكون لاحقًا كمدخل للوظيفة. لإعداد بيانات الإدخال المطلوبة من قبل الوظيفة، اتبع الخطوات التالية:
تسجيل الدخول إلى مدخل Microsoft Azure.
حدد Create a resource > Internet of Things > IoT Hub.
في صفحة IoT Hub ، أدخل المعلومات التالية:
- الاشتراك، حدد اشتراك Azure الخاص بك.
- مجموعة الموارد، حدد مجموعة موارد موجودة أو أنشئ مجموعة موارد جديدة.
- اسم مركز IoT، أدخل اسما لمركز IoT الخاص بك.
- المنطقة، حدد المنطقة الأقرب إليك.
انتقل إلى صفحة الإدارة ، لطبقة التسعير والمقياس، حدد F1: المستوى المجاني، إذا كان لا يزال متوفرا في اشتراكك. لمزيد من المعلومات، راجع تسعير Azure IoT Hub.
حدد Review + create. راجع معلوماتك عن مركز IoT، وحدد إنشاء. قد تستغرق هذه العملية بضع دقائق لتوزيع مركز IoT الخاص بك.
بعد إنشاء مركز IoT، حدد Go to resource للانتقال إلى صفحة IoT Hub . '
في صفحة IoT Hub ، حدد Devices في القائمة اليسرى، ثم حدد + Add Device.
أدخل معرف الجهاز وحدد حفظ.
بمجرد إنشاء الجهاز، يجب أن ترى الجهاز من قائمة "أجهزة إنترنت الأشياء". حدد زر "تحديث" على الصفحة إذا لم تتمكن من رؤيته.
حدد جهازك من القائمة. انسخ سلسلة الاتصال الأساسية واحفظها في مفكرة لاستخدامها لاحقا.
تشغيل محاكي IoT
افتح Raspberry Pi Azure IoT Online Simulator في علامة تبويب متصفح جديدة.
استبدل العنصر النائب في السطر 15 بسلسلة اتصال جهاز مركز IoT التي قمت بحفظها سابقًا.
حدد تشغيل. يجب أن يُظهر الإخراج بيانات الاستشعار والرسائل التي يتم إرسالها إلى مركز IoT الخاص بك.
إنشاء مخزن بيانات ثنائية كبيرة
من الزاوية العلوية اليمنى بمدخل Azure، حدد إنشاء مورد>مخزن>حساب التخزين.
في الجزء إنشاء حساب تخزين، أدخل اسم حساب التخزين وموقعه ومجموعة الموارد. اختر نفس الموقع ومجموعة الموارد الخاصين بمركز IoT الذي أنشأته. ثم حدد Review and Create لإنشاء حساب التخزين.
في صفحة "حساب التخزين"، حدد "الحاويات" في القائمة اليسرى، ثم حدد "+ حاوية" في شريط الأوامر.
من صفحة "حاوية جديدة"، أدخل "اسماً" للحاوية، واترك "مستوى الوصول العام" على "خاص (دون وصول مجهول)"، وحدد "موافق".
إنشاء مشروع Stream Analytics
في Visual Studio Code، اضغط على Ctrl+Shift+P وأدخل ASA: إنشاء مشروع جديد.
أدخل اسم مشروعك، مثل myASAproj، وحدد مجلدًا لمشروعك.
تتم إضافة مشروع ASA إلى مساحة العمل الخاصة بك. يتكون من ثلاثة مجلدات: المدخلاتوالمخرجاتوالوظائف. كما أن به برنامج نصي للاستعلام (*.asaql)، وملف JobConfig.json، وملف تكوين asaproj.json.
يحتوي ملف asaproj.json على المدخلات والمخرجات وإعدادات تكوين الوظيفة لإرسال مهمة Stream Analytics إلى Azure.
ملاحظة
عند إضافة المدخلات والمخرجات من لوحة الأوامر، تتم إضافة المسارات المطابقة إلى asaproj.json تلقائيًا. إذا قمت بإضافة أو إزالة المدخلات أو المخرجات على القرص مباشرة، فأنت تحتاج إلى إضافتها أو إزالتها يدويًا من asaproj.json. يمكنك اختيار وضع المدخلات والمخرجات في مكان واحد، ثم الرجوع إليها في وظائف مختلفة عن طريق تحديد المسارات في كل ملف من ملفات asaproj.json.
حدد استعلام التحويل
افتح ملف myASAproj.asaql وأضف الاستعلام التالي:
SELECT * INTO Output FROM Input WHERE Temperature > 27
تكوين إدخال المهمة
انقر بزر الماوس الأيمن فوق مجلد الإدخالات في مشروع Stream Analytics الخاص بك. ثم حدد ASA: إضافة إدخال من قائمة السياق.
أو اضغط على Ctrl+Shift+P لفتح لوحة الأوامر وإدخال ASA: إضافة إدخال.
اختر مركز IoT لنوع الإدخال.
حدد برنامج نصي ASA *.asaqlواشتراكات Azure من القائمة المنسدلة، ثم اضغط على ENTER.
ضمن مجلد Inputs ، سترى ملف IoTHub1.json تم إنشاؤه. استبدل الإعدادات بالقيم المقترحة التالية واحتفظ بالقيم الافتراضية للحولات غير المذكورة هنا.
إعداد القيم المقترحة الوصف الاسم إدخال يتم استخدام اسم الإدخال هذا لعبارة FROM في الاستعلام. IotHubNamespace spiothub اسم مركز IoT الخاص بك. يتم الكشف عن أسماء مركز IoT تلقائيا إذا قمت بتحديد من اشتراكك. SharedAccessPolicyName Iothubowner حدد معاينة البيانات لمعرفة ما إذا تم تكوين بيانات الإدخال بنجاح لمهمتك. سيجلب عينة من IoT Hub الخاص بك ويظهر في نافذة المعاينة.
تكوين إخراج المهمة
اضغط على Ctrl+Shift+P لفتح لوحة الأوامر وأدخل ASA: إضافة إخراج.
اختر "Data Lake Storage Gen2/مخزن كائن ثنائي كبير الحجم" لنوع المتلقي.
حدد البرنامج النصي للاستعلام باستخدام هذا الإخراج.
أدخل BlobStorage1 كاسم ملف الإخراج.
قم بتحرير الإعدادات باستخدام القيم التالية. احتفظ بالقيم الافتراضية للحقول غير المذكورة هنا.
الإعداد القيمة المقترحة الوصف الاسم المخرجات يتم استخدام اسم الإخراج هذا لعبارة INTO في الاستعلام. حساب التخزين spstorageaccount0901 اختر أو أدخل اسم حساب التخزين الخاص بك. يتم اكتشاف أسماء حسابات التخزين تلقائيًا إذا تم إنشاؤها في نفس الاشتراك. الحاوية spcontainer حدد الحاوية الموجودة التي قمت بإنشائها في حساب التخزين الخاص بك.
تحويل البرنامج النصي برمجيا وإرساله إلى Azure
يقوم التحويل البرمجي للبرنامج النصي بالتحقق من بناء الجملة، ويقوم بإنشاء قوالب Azure Resource Manager للنشر التلقائي.
انقر بزر الماوس الأيمن فوق البرنامج النصي، وحدد ASA: التحويل البرمجي للبرنامج النصي.
بعد التحويل البرمجي، سترى مجلد Deploy ضمن مشروعك مع قالبين Resource Manager Azure. يتم استخدام هذين الملفين للنشر التلقائي.
حدد إرسال إلى Azure في محرر الاستعلام.
ثم اتبع الإرشادات لإكمال العملية: حدد الاشتراك > حدد وظيفة إنشاء مهمة >> جديدة أدخل اسم > المهمة اختر مجموعة الموارد والمنطقة.
حدد Publish to Azure وأكمل. انتظر حتى تفتح علامة تبويب جديدة Cloud Job View تعرض حالة وظيفتك.
بدء وظيفة Stream Analytics، والتحقق من الإخراج
في علامة التبويب Cloud Job View ، حدد Start لتشغيل وظيفتك في السحابة. قد تستغرق هذه العملية بضع دقائق لتكتمل.
إذا بدأت وظيفتك بنجاح، يتم تغيير حالة الوظيفة إلى قيد التشغيل. يمكنك مشاهدة رسم تخطيطي منطقي يوضح كيفية تشغيل وظيفة ASA.
لعرض نتائج الإخراج، يمكنك فتح تخزين الكائن الثنائي كبير الحجم في ملحق 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 وجميع الموارد ذات الصلة عندما لا تحتاج لهم. يؤدي حذف الوظيفة إلى تجنب فوترة الوحدات المتدفقة التي تستهلكها الوظيفة. إذا كنت تخطط لاستخدام الوظيفة في المستقبل، يمكن إيقافها، وإعادة تشغيلها لاحقًا عند الحاجة. إذا كنت لا تنوي الاستمرار في استخدام هذه الوظيفة، فاحذف جميع الموارد التي أنشأتها في هذا التشغيل السريع باستخدام الخطوات التالية:
من القائمة اليمنى في مدخل Azure، حدد مجموعات الموارد، ثم حدد اسم المورد الذي أنشأته.
في صفحة مجموعة الموارد الخاصة بك، حدد حذف. أدخل اسم مجموعة الموارد لحذفها في مربع النص، ثم حدد حذف.
الخطوات التالية
لمعرفة المزيد حول ملحق أدوات ASA ل Visual Studio Code، تابع المقالات التالية:
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ