مشاركة عبر


التشغيل السريع - إنشاء مهمة Azure Stream Analytics باستخدام Azure CLI

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

قبل البدء

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

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

  • قم بإنشاء مجموعة موارد. يجب نشر كافة موارد Azure في مجموعة موارد. تسمح لك مجموعات الموارد بتنظيم وإدارة موارد Azure ذات الصلة.

    لهذا التشغيل السريع، أنشئ مجموعة موارد باسم streamanalyticsrg في موقع eastus باستخدام أمر az group create التالي:

    az group create --name streamanalyticsrg --location eastus
    

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

قبل تحديد مهمة Stream Analytics، قم بإعداد البيانات المستخدمة لإدخال المهمة. تقوم أوامر Azure CLI التالية بإعداد بيانات الإدخال المطلوبة من قبل الوظيفة.

  1. قم بإنشاء IoT Hub باستخدام الأمر az iot hub create. ينشئ هذا المثال IoT Hub يسمى MyASAIoTHub. نظرا لأن أسماء IoT Hub يجب أن تكون فريدة عالميا، فقد تضطر إلى تغيير الاسم إذا تم أخذه بالفعل. قم بتعيين SKU إلى F1 لاستخدام المستوى المجاني إذا كان متوفرا مع اشتراكك. إذا لم يكن كذلك، اختر المستوى الأدنى التالي.

    iotHubName=MyASAIoTHub
    az iot hub create --name $iotHubName --resource-group streamanalyticsrg --sku S1
    

    بمجرد إنشاء مركز IoT، احصل على مركز IoT سلسلة الاتصال باستخدام الأمر az iot hub connection-string show. انسخ سلسلة الاتصال بالكامل واحفظه. يمكنك استخدامه أثناء إضافة IoT Hub كمدخل إلى وظيفة Stream Analytics.

    az iot hub connection-string show --hub-name $iotHubName
    
  2. أضف جهازًا إلى IoT Hub باستخدام الأمر az iothub device-identity create. ينشئ هذا المثال جهازًا يسمى MyASAIoTDevice.

    az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"
    
  3. احصل على سلسلة اتصال الجهاز باستخدام الأمر az iot hub device-identity show-connection-string. نسخ سلسلة الاتصال بأكمله وحفظها عند إنشاء جهاز محاكاة Raspberry Pi.

    az iot hub device-identity connection-string show --hub-name $iotHubName --device-id "MyASAIoTDevice" --output table
    

    مثال الإخراج:

    HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
    

إنشاء حساب تخزين البيانات غير المنظمة

تنشئ أوامر Azure CLI التالية حساب تخزين كائن ثنائي كبير الحجم يستخدم لإخراج المهمة.

  1. إنشاء حساب تخزين للأغراض العامة مع الأمر az storage account create. يمكن استخدام حساب التخزين للأغراض العامة لكافة الخدمات الأربع: البيانات غير المنظمة، والملفات، والجداول، وقوائم الانتظار.

    storageAccountName="asatutorialstorage$RANDOM"
    az storage account create \
        --name $storageAccountName \
        --resource-group streamanalyticsrg \
        --location eastus \
        --sku Standard_ZRS \
        --encryption-services blob
    
  2. الحصول على مفتاح حساب التخزين باستخدام الأمر az storage account keys list.

    key=$(az storage account keys list -g streamanalyticsrg -n $storageAccountName --query "[0].value" -o tsv)
    echo $key
    

    هام

    دون مفتاح الوصول لحساب تخزين Azure. ستستخدم هذا المفتاح لاحقا في هذا التشغيل السريع.

  3. إنشاء حاوية باسم state لتخزين الكائنات الثنائية كبيرة الحجم باستخدام الأمر az storage container create . يمكنك استخدام مفتاح حساب التخزين لتخويل العملية لإنشاء الحاوية. لمزيد من المعلومات حول تخويل عمليات البيانات باستخدام Azure CLI، راجع تخويل الوصول إلى بيانات قائمة الانتظار أو الكائنات الثنائية كبيرة الحجم باستخدام Azure CLI.

    az storage container create \
        --account-name $storageAccountName \
        --name state \
        --account-key $key \
        --auth-mode key
    

إنشاء مشروع وظائف Stream Analytics

قم بإنشاء مهمة Stream Analytics باستخدام الأمر az stream-analytics job create.

az stream-analytics job create \
    --job-name "streamanalyticsjob" \
    --resource-group "streamanalyticsrg" \
    --location "eastus" \
    --output-error-policy "Drop" \
    --out-of-order-policy "Drop" \
    --order-max-delay 5 \
    --arrival-max-delay 16 \
    --data-locale "en-US"

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

أضف مُدخلاً إلى وظيفتك باستخدام الأمر cmdlet az stream-analytics input. يأخذ cmdlet هذا اسم الوظيفة واسم إدخال الوظيفة واسم مجموعة الموارد وخصائص الإدخال بتنسيق JSON كمعلمات. في هذا المثال، ستقوم بإنشاء مركز IoT كمدخل.

هام

  • استبدل IOT HUB ACCESS KEY بقيمة مفتاح الوصول المشترك في مركز IOT سلسلة الاتصال قمت بحفظه. على سبيل المثال، إذا كان سلسلة الاتصال IOT Hub هو: HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=، فإن قيمة مفتاح الوصول المشترك هي xxxxxxxxxxxxxx=. أثناء استبدال القيمة، تأكد من عدم حذف \ حرف (إلغاء) ل " (علامات الاقتباس المزدوجة).
  • قم بتحديث قيمة iotHubNamespace في الأمر التالي إذا استخدمت اسما آخر غير MyASAIoTHub. قم بتشغيل echo $iotHubName لمشاهدة اسم IoT Hub.
az stream-analytics input create \
    --properties "{\"type\":\"Stream\",\"datasource\":{\"type\":\"Microsoft.Devices/IotHubs\",\"properties\":{\"consumerGroupName\":\"\$Default\",\"endpoint\":\"messages/events\",\"iotHubNamespace\":\"MyASAIoTHub\",\"sharedAccessPolicyKey\":\"IOT HUB ACCESS KEY\",\"sharedAccessPolicyName\":\"iothubowner\"}},\"serialization\":{\"type\":\"Json\",\"encoding\":\"UTF8\"}}" \
    --input-name "asaiotinput" \
    --job-name "streamanalyticsjob" \
    --resource-group "streamanalyticsrg"

تكوين الإخراج إلى الوظيفة

أضف مُدخلاً إلى وظيفتك باستخدام الأمر cmdlet az stream-analytics onput. يأخذ cmdlet هذا اسم الوظيفة واسم إخراج الوظيفة واسم مجموعة الموارد ومصدر البيانات بتنسيق JSON ونوع التسلسل كمعلمات.

هام

استبدل STORAGEACCOUNTNAME> باسم حساب Azure Storage الخاص بك ومفتاح STORAGEACCESSKEY> الوصول لحساب التخزين الخاص بك. إذا لم تقم بتدوين هذه القيم، فقم بتشغيل الأوامر التالية للحصول عليها: echo $storageAccountName و echo $key. أثناء استبدال القيم، تأكد من عدم حذف \ حرف (إلغاء) ل " (علامات الاقتباس المزدوجة).

az stream-analytics output create \
    --job-name streamanalyticsjob \
    --datasource "{\"type\":\"Microsoft.Storage/Blob\",\"properties\":{\"container\":\"state\",\"dateFormat\":\"yyyy/MM/dd\",\"pathPattern\":\"{date}/{time}\",\"storageAccounts\":[{\"accountKey\":\"STORAGEACCESSKEY\",\"accountName\":\"STORAGEACCOUNTNAME\"}],\"timeFormat\":\"HH\"}}" \
    --serialization "{\"type\":\"Json\",\"properties\":{\"format\":\"Array\",\"encoding\":\"UTF8\"}}" \
    --output-name asabloboutput \
    --resource-group streamanalyticsrg

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

أضف تحويلًا للمهمة الخاصة بك باستخدام أمر cmdlet az stream-analytics transformation create.

az stream-analytics transformation create \
    --resource-group streamanalyticsrg \
    --job-name streamanalyticsjob \
    --name Transformation \
    --streaming-units "6" \
    --saql "SELECT * INTO asabloboutput FROM asaiotinput WHERE Temperature > 27"

تشغيل محاكي IoT

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

  2. استبدل العنصر النائب في السطر 15 ب Azure IoT Hub Device سلسلة الاتصال (وليس IoT Hub سلسلة الاتصال) التي حفظتها في بداية التشغيل السريع.

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

    Raspberry Pi Azure IoT Online Simulator

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

ابدأ المهمة باستخدام الأمر cmdletaz stream-analytics job start. يأخذ هذا الأمر cmdlet اسم الوظيفة، واسم مجموعة الموارد، ووضع بدء الإخراج، ووقت البدء كمعلمات. OutputStartMode يقبل قيم JobStartTime، CustomTime أو LastOutputEventTime.

بعد تشغيل الأمر cmdlet التالي، فإنه يقوم بإعادة True كإخراج إذا بدأت الوظيفة.

az stream-analytics job start \
    --resource-group streamanalyticsrg \
    --name streamanalyticsjob \
    --output-start-mode JobStartTime

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

Screenshot showing the output file in the State blob container.

قم بتنزيل الملف وفتحه لمشاهدة العديد من الإدخالات المشابهة للإدخال التالي:

{
    "messageId": 229,
    "deviceId": "Raspberry Pi Web Client",
    "temperature": 31.85214010589595,
    "humidity": 60.278830289656284,
    "EventProcessedUtcTime": "2023-02-28T22:06:33.5567789Z",
    "PartitionId": 3,
    "EventEnqueuedUtcTime": "2023-02-28T22:05:49.6520000Z",
    "IoTHub": {
        "MessageId": null,
        "CorrelationId": null,
        "ConnectionDeviceId": "MyASAIoTDevice",
        "ConnectionDeviceGenerationId": "638132150746523845",
        "EnqueuedTime": "2023-02-28T22:05:49.6520000Z",
        "StreamId": null
    }
}

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

احذف مجموعة الموارد، التي ستحذف جميع الموارد في مجموعة الموارد بما في ذلك وظيفة Stream Analytics، وIoT Hub، وحساب Azure Storage.

az group delete \
    --name streamanalyticsrg \
    --no-wait

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

في هذا التشغيل السريع، قمت بنشر مهمة Stream Analytics بسيطة باستخدام Azure CLI. كما يمكنك نشر وظائف Stream Analytics باستخدام مدخل AzureوVisual Studio.

للتعرف على تكوين مصادر الإدخال الأخرى وإجراء الكشف في الوقت الفعلي، تابع إلى المقالة التالية: