إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تُستخدم الوحدة النمطية 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 باستخدام
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 سلسلة الاتصال باستخدام الأمر az iot hub connection-string show. انسخ سلسلة الاتصال بالكامل واحفظه. تحتاج إليه عند إضافة IoT Hub كمدخل إلى وظيفة Stream Analytics.
az iot hub connection-string show --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 بالكامل الذي حفظتها في قسم سابق.
انقر فوق تشغيل. يجب أن يُظهر الإخراج بيانات المستشعر والرسائل المُرسلة إلى مركز 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.
للتعرف على تكوين مصادر الإدخال الأخرى وإجراء الكشف في الوقت الفعلي، تابع إلى المقالة التالية: