التشغيل السريع - إنشاء مهمة Azure Stream Analytics باستخدام Azure CLI
في هذا التشغيل السريع، ستستخدم Azure CLI لتحديد وظيفة Stream Analytics التي تقوم بتصفية رسائل الاستشعار في الوقت الحقيقي مع قراءة درجة حرارة أكبر من 27. تقرأ وظيفة Stream Analytics البيانات من IoT Hub، وتحول البيانات، وتكتب بيانات الإخراج إلى حاوية في تخزين كائن ثنائي كبير الحجم. يتم إنشاء بيانات الإدخال المستخدمة في هذه البداية السريعة بواسطة جهاز محاكاة Raspberry Pi عبر الإنترنت.
قبل البدء
إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
قم بإنشاء مجموعة موارد. يجب نشر كافة موارد Azure في مجموعة موارد. تسمح لك مجموعات الموارد بتنظيم وإدارة موارد Azure ذات الصلة.
لهذا التشغيل السريع، أنشئ مجموعة موارد باسم streamanalyticsrg في موقع eastus باستخدام أمر az group create التالي:
az group create --name streamanalyticsrg --location eastus
إعداد بيانات الإدخال
قبل تحديد مهمة Stream Analytics، قم بإعداد البيانات المستخدمة لإدخال المهمة. تقوم أوامر Azure CLI التالية بإعداد بيانات الإدخال المطلوبة من قبل الوظيفة.
قم بإنشاء 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
أضف جهازًا إلى IoT Hub باستخدام الأمر az iothub device-identity create. ينشئ هذا المثال جهازًا يسمى MyASAIoTDevice.
az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"
احصل على سلسلة اتصال الجهاز باستخدام الأمر 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 التالية حساب تخزين كائن ثنائي كبير الحجم يستخدم لإخراج المهمة.
إنشاء حساب تخزين للأغراض العامة مع الأمر az storage account create. يمكن استخدام حساب التخزين للأغراض العامة لكافة الخدمات الأربع: البيانات غير المنظمة، والملفات، والجداول، وقوائم الانتظار.
storageAccountName="asatutorialstorage$RANDOM" az storage account create \ --name $storageAccountName \ --resource-group streamanalyticsrg \ --location eastus \ --sku Standard_ZRS \ --encryption-services blob
الحصول على مفتاح حساب التخزين باستخدام الأمر az storage account keys list.
key=$(az storage account keys list -g streamanalyticsrg -n $storageAccountName --query "[0].value" -o tsv) echo $key
هام
دون مفتاح الوصول لحساب تخزين Azure. ستستخدم هذا المفتاح لاحقا في هذا التشغيل السريع.
إنشاء حاوية باسم
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
استبدل العنصر النائب في السطر 15 ب Azure IoT Hub Device سلسلة الاتصال (وليس IoT Hub سلسلة الاتصال) التي حفظتها في بداية التشغيل السريع.
حدد تشغيل. يجب أن يُظهر الإخراج بيانات المستشعر والرسائل المُرسلة إلى مركز loT الخاص بك.
ابدأ وظيفة 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
حاوية الكائن الثنائي كبير الحجم.
قم بتنزيل الملف وفتحه لمشاهدة العديد من الإدخالات المشابهة للإدخال التالي:
{
"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.
للتعرف على تكوين مصادر الإدخال الأخرى وإجراء الكشف في الوقت الفعلي، تابع إلى المقالة التالية: