التشغيل السريع - إنشاء وظيفة Stream Analytics باستخدام Azure PowerShell
تُستخدم الوحدة النمطية Azure PowerShell لإنشاء موارد Azure وإدارتها باستخدام PowerShell cmdlets أو البرامج النصية. يوضح هذا التشغيل السريع كيفية استخدام الوحدة النمطية Azure PowerShell لنشر وتشغيل مهمة Azure Stream Analytics.
تقرأ عينة الوظيفة دفق البيانات من جهاز IoT Hub. يتم إنشاء بيانات الإدخال بواسطة جهاز محاكاة Raspberry Pi عبر الإنترنت. تحول مهمة Stream Analytics البيانات باستخدام لغة استعلام Stream Analytics لتصفية الرسائل ذات درجة حرارة أكبر من 27 درجة. ثم يكتب أحداث الإخراج الناتجة في ملف في تخزين كائن ثنائي كبير الحجم.
قبل أن تبدأ
- إذا لم يكن لديك اشتراك Azure، فقم بإنشاء حساب مجاني.
- يتطلب هذا التشغيل السريع وحدة Azure PowerShell النمطية. شغل
Get-Module -ListAvailable Az
للبحث عن الإصدار المثبت على الجهاز المحلي الخاص بك. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت وحدة Azure PowerShell. - لا يدعم Azure PowerShell بعض إجراءات IoT Hub ويجب إكمالها باستخدام الإصدار 2.0.70 من Azure CLI أو أحدث وملحق IoT ل Azure CLI. تثبيت Azure CLI واستخدام
az extension add --name azure-iot
لتثبيت ملحق IoT.
تسجيل الدخول إلى Azure
سجل الدخول إلى اشتراك Azure باستخدام Connect-AzAccount
الأمر، وأدخل بيانات اعتماد Azure الخاصة بك في المتصفح المنبثق:
# Connect to your Azure account
Connect-AzAccount
إذا كان لديك أكثر من اشتراك واحد، حدد الاشتراك الذي ترغب في استخدامه لهذه البداية السريعة من خلال تشغيل cmdlets التالية. تأكد من استبدال <your subscription name>
باسم اشتراكك:
# List all available subscriptions.
Get-AzSubscription
# Select the Azure subscription you want to use to create the resource group and resources.
Get-AzSubscription -SubscriptionName "<your subscription name>" | Select-AzSubscription
قم بإنشاء مجموعة موارد
إنشاء مجموعة موارد Azure باستخدام New-AzResourceGroup. تُعد مجموعة الموارد حاوية منطقية يتم فيها نشر موارد Azure وإدارتها.
$resourceGroup = "StreamAnalyticsRG"
$location = "WestUS2"
New-AzResourceGroup `
-Name $resourceGroup `
-Location $location
قم بإعداد بيانات الإدخال
قبل تحديد وظيفة Stream Analytics، عليك إعداد البيانات التي تم تكوينها كمدخل للوظيفة.
تحتوي كتلة التعليمات البرمجية Azure CLI التالية على العديد من الأوامر لإعداد بيانات الإدخال المطلوبة من قبل الوظيفة. راجع الأقسام التالية لفهم التعليمات البرمجية.
في نافذة PowerShell، قم بتشغيل
az login
الأمر لتسجيل الدخول إلى حساب Azure الخاص بك.عند تسجيل الدخول بنجاح، يقوم Azure CLI بإرجاع قائمة الاشتراكات الخاصة بك. انسخ الاشتراك الذي تستخدمه لهذا التشغيل السريع وقم بتشغيل
az account set
الأمر لتحديد هذا الاشتراك. اختر نفس الاشتراك الذي حددته في القسم السابق باستخدام PowerShell. تأكد من استبدال<your subscription name>
باسم اشتراكك.az login az account set --subscription "<your subscription>"
إنشاء IoT Hub باستخدام
az iot hub create
الأمر . ينشئ هذا المثال IoT Hub يسمى MyASAIoTHub. نظرًا لأن أسماء IoT Hub فريدة من نوعها، تحتاج إلى ابتكار اسم IoT Hub الخاص بك. قم بتعيين SKU إلى F1 لاستخدام المستوى المجاني إذا كان متوفرا مع اشتراكك. إذا لم يكن كذلك، اختر المستوى الأدنى التالي.az iot hub create --name "MyASAIoTHub" --resource-group $resourceGroup --sku S1
بمجرد إنشاء مركز IoT، احصل على سلسلة اتصال IoT Hub باستخدام الأمر az iot hub show-connection-string. انسخ سلسلة الاتصال بأكملها واحفظها. تحتاج إليه عند إضافة IoT Hub كمدخل إلى وظيفة Stream Analytics.
az iot hub show-connection-string --resource-group $resourceGroup --hub-name "MyASAIoTHub"
أضف جهازا إلى IoT Hub باستخدام
az iot hub device-identity create
الأمر . ينشئ هذا المثال جهازًا يسمى MyASAIoTDevice.az iot hub device-identity create --resource-group $resourceGroup --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice"
احصل على سلسلة اتصال الجهاز باستخدام
az iot hub device-identity connection-string show
الأمر . نسخ سلسلة الاتصال بأكمله وحفظها عند إنشاء جهاز محاكاة Raspberry Pi.az iot hub device-identity connection-string show --resource-group $resourceGroup --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice" --output table
مثال الإخراج:
HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
إنشاء مخزن كائنات ثنائية كبيرة
يستخدم قالب التعليمات البرمجية لـAzure PowerShell التالي أوامر لإنشاء مخزن كائنات ثنائية صغيرة المستخدمة لإخراج الوظيفة. راجع الأقسام لفهم التعليمات البرمجية.
إنشاء حساب تخزين موحد ذات أغراض عامة باستخدام New-AzStorageAccount cmdlet. ينشئ هذا المثال حساب تخزين يسمى myasaquickstartstorage مع التخزين المكرر محليا (LRS) وتشفير الكائنات الثنائية الكبيرة (مفعلة بشكل افتراضي).
استرداد سياق حساب التخزين
$storageAccount.Context
الذي يعرف حساب التخزين ليتم استخدامه. عند العمل على حسابات التخزين، يمكنك الإشارة إلى السياق بدلاً من تقديم بيانات الاعتماد بشكل متكرر.إنشاء حاوية تخزين باستخدام New-AzStorageContainer.
انسخ مفتاح التخزين الذي يتم إخراجه بواسطة التعليمات البرمجية، واحفظ هذا المفتاح لإنشاء إخراج وظيفة التدفق لاحقا.
$storageAccountName = "myasaquickstartstorage" $storageAccount = New-AzStorageAccount ` -ResourceGroupName $resourceGroup ` -Name $storageAccountName ` -Location $location ` -SkuName Standard_LRS ` -Kind Storage $ctx = $storageAccount.Context $containerName = "container1" New-AzStorageContainer ` -Name $containerName ` -Context $ctx $storageAccountKey = (Get-AzStorageAccountKey ` -ResourceGroupName $resourceGroup ` -Name $storageAccountName).Value[0] Write-Host "The <storage account key> placeholder needs to be replaced in your output json files with this key value:" Write-Host $storageAccountKey -ForegroundColor Cyan
إنشاء وظيفة Stream Analytics
إنشاء وظيفة Stream Analytics باستخدام New-AzStreamAnalyticsJob cmdlet. يأخذ cmdlet هذا اسم الوظيفة واسم مجموعة الموارد والموقع واسم sku كمعلمات. يمكن أن يكون اسم الوظيفة أي اسم مألوف يحدد وظيفتك. من الممكن أن تحتوي على أحرف أبجدية رقمية، وواصلات، وشرطات سفلية فقط ويجب أن يتراوح طولها بين 3 و 63 حرفًا.
تشغيل New-AzStreamAnalyticsJob
cmdlet.
$jobName = "MyStreamingJob"
New-AzStreamAnalyticsJob `
-ResourceGroupName $resourceGroup `
-Name $jobName `
-Location centralus `
-SkuName Standard
تكوين الإدخال إلى المهمة
أضف مُدخلاً إلى وظيفتك باستخدام الأمر New-AzStreamAnalyticsInput cmdlet. يأخذ هذا الأمر cmdlet اسم المهمة، واسم إدخال المهمة، واسم مجموعة الموارد، وتعريف إدخال المهمة كمعلمات. تعريف إدخال المهمة هو ملف JSON يحتوي على الخصائص المطلوبة لتكوين إدخال المهمة. في هذا المثال، يمكنك إنشاء تخزين كائن ثنائي كبير الحجم كمدخل.
على جهازك المحلي، قم بإنشاء ملف باسم JobInputDefinition.json
وإضافة بيانات JSON التالية إليه.
هام
- استبدل
accesspolicykey
بجزءSharedAccessKey
سلسلة اتصال IoT Hub التي حفظتها في قسم سابق. - إذا استخدمت اسما مختلفا لمركز IoT، فقم بتحديث قيمة .
iotHubNamespace
{
"properties": {
"type": "Stream",
"datasource": {
"type": "Microsoft.Devices/IotHubs",
"properties": {
"iotHubNamespace": "MyASAIoTHub",
"sharedAccessPolicyName": "iothubowner",
"sharedAccessPolicyKey": "accesspolicykey",
"endpoint": "messages/events",
"consumerGroupName": "$Default"
}
},
"compression": {
"type": "None"
},
"serialization": {
"type": "Json",
"properties": {
"encoding": "UTF8"
}
}
},
"name": "IoTHubInput",
"type": "Microsoft.StreamAnalytics/streamingjobs/inputs"
}
$jobInputDefinitionFile
قم بتعيين متغير PowerShell إلى المسار حيث قمت بتخزين ملف JSON لتعريف إدخال الوظيفة.
$jobInputDefinitionFile = "C:\JobInputDefinition.json"
بعد ذلك، قم بتشغيل New-AzStreamAnalyticsInput
cmdlet لإنشاء إدخال Azure IoT Hub لوظيفة Stream Analytics.
$jobInputName = "IoTHubInput"
New-AzStreamAnalyticsInput `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-File $jobInputDefinitionFile `
-Name $jobInputName
تكوين الإخراج إلى الوظيفة
أضف مُدخلاً إلى وظيفتك باستخدام الأمر New-AzStreamAnalyticsOutput cmdlet. يأخذ هذا الأمر cmdlet اسم الوظيفة، واسم إخراج الوظيفة، واسم مجموعة الموارد، وتعريف إخراج الوظيفة كمعلمات. تعريف إخراج المهمة هو ملف JSON يحتوي على الخصائص المطلوبة لتكوين إخراج الوظيفة. يستخدم هذا المثال مخزن كائنات ثنائية كبيرة كناتج.
على جهازك المحلي، قم بإنشاء ملف باسم JobOutputDefinition.json
وإضافة بيانات JSON التالية إليه.
هام
استبدل القيمة ل accountKey
بمفتاح الوصول لحساب التخزين الخاص بك وهو القيمة المخزنة في $storageAccountKey
القيمة.
{
"properties": {
"datasource": {
"type": "Microsoft.Storage/Blob",
"properties": {
"storageAccounts": [
{
"accountName": "asaquickstartstorage",
"accountKey": "<storage account key>"
}
],
"container": "container1",
"pathPattern": "output/",
"dateFormat": "yyyy/MM/dd",
"timeFormat": "HH"
}
},
"serialization": {
"type": "Json",
"properties": {
"encoding": "UTF8",
"format": "LineSeparated"
}
}
},
"name": "BlobOutput",
"type": "Microsoft.StreamAnalytics/streamingjobs/outputs"
}
$jobOutputDefinitionFile
قم بتعيين متغير PowerShell إلى المسار حيث قمت بتخزين ملف JSON لتعريف إخراج الوظيفة.
$jobOutputDefinitionFile = "C:\JobOutputDefinition.json"
بعد ذلك، قم بتشغيل New-AzStreamAnalyticsOutput
cmdlet لإنشاء إخراج Azure Blob Storage لوظيفة Stream Analytics.
$jobOutputName = "BlobOutput"
New-AzStreamAnalyticsOutput `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-File $jobOutputDefinitionFile `
-Name $jobOutputName
حدد استعلام التحويل
أضف تحويلًا للوظيفة الخاصة بك باستخدام أمر New-AzStreamAnalyticsTransformation cmdlet. يأخذ هذا الأمر cmdlet اسم الوظيفة، واسم تحويل الوظيفة، واسم مجموعة الموارد، وتعريف تحويل الوظيفة كمعلمات. على جهازك المحلي، قم بإنشاء ملف باسم JobTransformationDefinition.json
وأضف بيانات JSON التالية إليه. يحتوي الملف JSON على معلمة استعلام الذي يعرف استعلام التحويل:
{
"name":"MyTransformation",
"type":"Microsoft.StreamAnalytics/streamingjobs/transformations",
"properties":{
"streamingUnits":1,
"script":null,
"query":"SELECT * INTO BlobOutput FROM IoTHubInput WHERE Temperature > 27"
}
}
بعد ذلك، قم بتشغيل الأمر cmdlet New-AzStreamAnalyticsTransformation
.
$jobTransformationName = "MyJobTransformation"
$jobTransformationDefinitionFile = "C:\JobTransformationDefinition.json"
New-AzStreamAnalyticsTransformation `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-Query "SELECT * INTO BlobOutput FROM IoTHubInput WHERE Temperature > 27" `
-StreamingUnit 1 `
-Name $jobTransformationName
تشغيل محاكي IoT
استبدل العنصر النائب في السطر 15 بسلسلة اتصال الجهاز Azure IoT Hub بالكامل الذي حفظتها في قسم سابق.
انقر فوقRun. يجب أن يُظهر الإخراج بيانات المستشعر والرسائل المُرسلة إلى مركز loT الخاص بك.
ابدأ وظيفة Stream Analytics وتحقق من الإخراج
بدء الوظيفة باستخدام Start-AzStreamAnalyticsJob cmdlet. يأخذ هذا الأمر cmdlet اسم الوظيفة، واسم مجموعة الموارد، ووضع بدء الإخراج، ووقت البدء كمعلمات. OutputStartMode
يقبل قيم JobStartTime
، CustomTime
أو LastOutputEventTime
. لمعرفة المزيد حول ما تشير إليه كل من هذه القيم، راجع قسم المعلمات في وثائق PowerShell.
بعد تشغيل الأمر cmdlet التالي، فإنه يقوم بإعادة True
كإخراج إذا بدأت الوظيفة. في حاوية التخزين، يتم إنشاء مجلد إخراج مع البيانات المحولة.
Start-AzStreamAnalyticsJob `
-ResourceGroupName $resourceGroup `
-Name $jobName `
-OutputStartMode 'JobStartTime'
تنظيف الموارد
عند عدم الحاجة، احذف مجموعة الموارد، ووظيفة التدفق، وكافة الموارد المرتبطة. يؤدي حذف الوظيفة إلى تجنب فوترة الوحدات المتدفقة التي تستهلكها الوظيفة. إذا كنت تخطط لاستخدام الوظيفة في المستقبل، يمكنك تخطي حذفها، وإيقاف الوظيفة في الوقت الحالي. إذا لم تكن تنوي متابعة استخدام هذه الوظيفة، احذف كافة الموارد التي تم إنشاؤها بواسطة التشغيل السريع هذا باستخدام الخطوات التالية:
Remove-AzResourceGroup `
-Name $resourceGroup
الخطوات التالية
في هذا التشغيل السريع، قمت بنشر وظيفة Stream Analytics بسيطة باستخدام PowerShell. كما يمكنك نشر وظائف Stream Analytics باستخدام مدخل AzureوVisual Studio.
للتعرف على تكوين مصادر الإدخال الأخرى وإجراء الكشف في الوقت الفعلي، تابع إلى المقالة التالية:
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ