Membuat pekerjaan Stream Analytics menggunakan Azure PowerShell
Modul Azure PowerShell digunakan untuk membuat dan mengelola sumber daya Azure menggunakan cmdlet atau skrip PowerShell. Mulai cepat ini menunjukkan cara menggunakan modul Azure PowerShell untuk menyebarkan dan menjalankan pekerjaan Azure Stream Analytics.
Sampel pekerjaan membaca data streaming dari perangkat IoT Hub. Data input dihasilkan oleh simulator online Raspberry Pi. Pekerjaan Azure Stream Analytics mengubah data menggunakan bahasa kueri Azure Stream Analytics untuk memfilter pesan dengan suhu lebih besar dari 27°. Kemudian, ia menulis peristiwa output yang dihasilkan ke dalam file dalam penyimpanan blob.
Sebelum Anda mulai
- Jika Anda tidak memiliki langganan Azure, buat akun gratis.
- Mulai cepat ini memerlukan modul Azure PowerShell. Jalankan
Get-Module -ListAvailable Az
untuk menemukan versi yang terpasang di mesin lokal Anda. Jika Anda perlu memasang atau meningkatkan, lihat Pasang modul Azure PowerShell. - Beberapa tindakan IoT Hub tidak didukung oleh Azure PowerShell dan harus diselesaikan menggunakan Azure CLI versi 2.0.70 atau yang lebih baru dan ekstensi IoT untuk Azure CLI.
Pasang Azure CLI dan
az extension add --name azure-iot
gunakan untuk memasang ekstensi IoT.
Masuk ke Azure
Masuk ke langganan Azure Anda dengan Connect-AzAccount
perintah, dan masukkan kredensial Azure Anda di browser pop-up:
# Connect to your Azure account
Connect-AzAccount
Jika Anda memiliki lebih dari satu langganan, pilih langganan yang ingin Anda gunakan untuk mulai cepat ini dengan menjalankan cmdlet berikut. Pastikan untuk mengganti <your subscription name>
dengan nama langganan Anda:
# 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
Membuat grup sumber daya
Buat grup sumber daya Azure menggunakan New-AzResourceGroup. Grup sumber daya adalah kontainer logis tempat sumber daya Azure disebarkan dan dikelola.
$resourceGroup = "StreamAnalyticsRG"
$location = "WestUS2"
New-AzResourceGroup `
-Name $resourceGroup `
-Location $location
Menyiapkan data input
Sebelum menetapkan pekerjaan Stream Analytics, siapkan data yang dikonfigurasi sebagai input ke pekerjaan.
Blok kode Azure CLI berikut memiliki banyak perintah untuk menyiapkan data input yang diperlukan oleh pekerjaan. Tinjau bagian berikut untuk memahami kode.
Di jendela PowerShell Anda, jalankan
az login
perintah untuk masuk ke akun Azure Anda.Saat Anda berhasil masuk, Azure CLI mengembalikan daftar langganan Anda. Salin langganan yang Anda gunakan untuk mulai cepat ini dan jalankan perintah untuk memilih langganan tersebut
az account set
. Pilih langganan yang sama dengan yang Anda pilih di bagian sebelumnya dengan PowerShell. Pastikan untuk mengganti<your subscription name>
dengan nama langganan Anda:az login az account set --subscription "<your subscription>"
Buat IoT Hub menggunakan
az iot hub create
perintah . Contoh ini membuat IoT Hub yang disebut MyASAIoTHub. Karena nama IoT Hub unik, Anda harus membuat nama IoT Hub Anda sendiri. Atur SKU ke F1 untuk menggunakan tingkat gratis jika tersedia dengan langganan Anda. Jika tidak, pilih tingkat terendah berikutnya.az iot hub create --name "MyASAIoTHub" --resource-group $resourceGroup --sku S1
Setelah hub IoT dibuat, dapatkan string koneksi Azure IoT Hub menggunakan perintah az iot hub show-connection-string. Salin seluruh string koneksi dan simpan. Anda memerlukannya saat menambahkan IoT Hub sebagai input ke pekerjaan Azure Stream Analytics Anda.
az iot hub show-connection-string --resource-group $resourceGroup --hub-name "MyASAIoTHub"
Tambahkan perangkat untuk IoT Hub menggunakan
az iot hub device-identity create
perintah . Contoh ini membuat perangkat bernama MyASAIoTDevice.az iot hub device-identity create --resource-group $resourceGroup --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice"
Dapatkan string koneksi perangkat menggunakan
az iot hub device-identity connection-string show
perintah . Salin seluruh string koneksi dan simpan saat Anda membuat simulator Raspberry Pi.az iot hub device-identity connection-string show --resource-group $resourceGroup --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice" --output table
Contoh output:
HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
Membuat penyimpanan blob
Blok kode Azure PowerShell berikut menggunakan perintah untuk membuat penyimpanan blob yang digunakan untuk output pekerjaan. Tinjau bagian terkait untuk memahami kodenya.
Buat akun penyimpanan tujuan umum standar menggunakan cmdlet New-AzStorageAccount. Contoh ini membuat akun penyimpanan yang disebut myasaquickstartstorage dengan penyimpanan redundan lokal (LRS) dan enkripsi blob (diaktifkan secara default).
Dapatkan konteks akun penyimpanan
$storageAccount.Context
yang menentukan akun penyimpanan yang akan digunakan. Saat bertindak di akun penyimpanan, Anda mereferensikan konteksnya, bukan berulang kali memberikan kredensial.Buat kontainer penyimpanan menggunakan New-AzStorageContainer.
Salin kunci penyimpanan yang dihasilkan oleh kode, dan simpan kunci tersebut untuk membuat output pekerjaan streaming di kemudian hari.
$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
Membuat pekerjaan Azure Stream Analytics
Buat pekerjaan Stream Analytics dengan cmdlet New-AzStreamAnalyticsJob. Cmdlet ini mengambil nama pekerjaan, nama grup sumber daya, lokasi, dan nama sku sebagai parameter. Nama pekerjaan bisa menjadi nama ramah yang mengidentifikasi pekerjaan Anda. Cmdlet hanya dapat berisi karakter alfanumerik, tanda hubung, dan garis bawah dan harus berisi 3 hingga 63 karakter.
Jalankan cmdlet New-AzStreamAnalyticsJob
.
$jobName = "MyStreamingJob"
New-AzStreamAnalyticsJob `
-ResourceGroupName $resourceGroup `
-Name $jobName `
-Location centralus `
-SkuName Standard
Konfigurasikan input ke pekerjaan
Tambahkan input ke pekerjaan Anda dengan menggunakan cmdlet New-AzStreamAnalyticsInput. Cmdlet ini mengambil nama pekerjaan, nama input pekerjaan, nama grup sumber daya, dan definisi input pekerjaan sebagai parameter. Definisi input pekerjaan adalah file JSON yang berisi properti yang diperlukan untuk mengonfigurasi input pekerjaan. Dalam contoh ini, Anda membuat penyimpanan blob sebagai input.
Di komputer lokal Anda, buat file bernama JobInputDefinition.json
dan tambahkan data JSON berikut ke dalamnya.
Penting
- Ganti
accesspolicykey
denganSharedAccessKey
bagian string koneksi IoT Hub yang Anda simpan di bagian sebelumnya. - Jika Anda menggunakan nama yang berbeda untuk hub IoT, perbarui nilai untuk
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"
}
Atur $jobInputDefinitionFile
variabel PowerShell ke jalur tempat Anda menyimpan file JSON definisi input pekerjaan.
$jobInputDefinitionFile = "C:\JobInputDefinition.json"
Selanjutnya, jalankan New-AzStreamAnalyticsInput
cmdlet untuk membuat input Azure IoT Hub untuk pekerjaan Azure Stream Analytics.
$jobInputName = "IoTHubInput"
New-AzStreamAnalyticsInput `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-File $jobInputDefinitionFile `
-Name $jobInputName
Konfigurasikan output ke pekerjaan
Tambahkan input ke pekerjaan Anda dengan menggunakan cmdlet New-AzStreamAnalyticsOutput. Cmdlet ini mengambil nama pekerjaan, nama output pekerjaan, nama grup sumber daya, dan definisi output pekerjaan sebagai parameter. Definisi output pekerjaan adalah file JSON yang berisi properti yang diperlukan untuk mengonfigurasi output pekerjaan. Contoh ini menggunakan penyimpanan blob sebagai output.
Di komputer lokal Anda, buat file bernama JobOutputDefinition.json
, dan tambahkan data JSON berikut ke dalamnya.
Penting
Ganti nilai untuk accountKey
dengan kunci akses akun penyimpanan Anda yang merupakan nilai yang disimpan dalam $storageAccountKey
nilai.
{
"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"
}
Atur $jobOutputDefinitionFile
variabel PowerShell ke jalur tempat Anda menyimpan file JSON definisi output pekerjaan.
$jobOutputDefinitionFile = "C:\JobOutputDefinition.json"
Selanjutnya, jalankan New-AzStreamAnalyticsOutput
cmdlet untuk membuat output Azure Blob Storage untuk pekerjaan Azure Stream Analytics.
$jobOutputName = "BlobOutput"
New-AzStreamAnalyticsOutput `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-File $jobOutputDefinitionFile `
-Name $jobOutputName
Tentukan kueri transformasi
Tambahkan transformasi pekerjaan Anda dengan menggunakan cmdlet New-AzStreamAnalyticsTransformation. Cmdlet ini mengambil nama pekerjaan, nama transformasi pekerjaan, nama grup sumber daya, dan definisi transformasi pekerjaan sebagai parameter. Di komputer lokal Anda, buat file bernama JobTransformationDefinition.json
dan tambahkan data JSON berikut ke dalamnya. File JSON berisi parameter kueri yang menentukan kueri transformasi:
{
"name":"MyTransformation",
"type":"Microsoft.StreamAnalytics/streamingjobs/transformations",
"properties":{
"streamingUnits":1,
"script":null,
"query":"SELECT * INTO BlobOutput FROM IoTHubInput WHERE Temperature > 27"
}
}
Selanjutnya, jalankan 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
Jalankan simulator IoT
Ganti tempat penampung di Baris 15 dengan seluruh string koneksi Perangkat Azure IoT Hub yang Anda simpan di bagian sebelumnya.
Klik Jalankan. Outputnya harus menunjukkan data sensor dan pesan yang dikirim ke IoT Hub Anda.
Mulai pekerjaan Analisis Aliran dan periksa output-nya
Mulai pekerjaan dengan menggunakan cmdlet Start-AzStreamAnalyticsJob. Cmdlet ini mengambil nama pekerjaan, nama grup sumber daya, mode mulai output, dan waktu mulai sebagai parameter.
OutputStartMode
menerima nilai JobStartTime
, CustomTime
, atau LastOutputEventTime
. Untuk mempelajari selengkapnya tentang apa yang dimaksud oleh masing-masing nilai ini, lihat bagian parameter dalam dokumentasi PowerShell.
Setelah Anda menjalankan cmdlet berikut, ia mengembalikan True
sebagai output ketika pekerjaan dimulai. Dalam kontainer penyimpanan, folder output dibuat dengan data yang diubah.
Start-AzStreamAnalyticsJob `
-ResourceGroupName $resourceGroup `
-Name $jobName `
-OutputStartMode 'JobStartTime'
Membersihkan sumber daya
Jika tidak diperlukan lagi, hapus grup sumber daya, tugas streaming, dan semua sumber daya terkait. Menghapus pekerjaan menghindari penagihan unit streaming yang digunakan oleh pekerjaan. Jika Anda berencana untuk menggunakan pekerjaan di masa mendatang, Anda dapat melewati penghapusan, dan menghentikan pekerjaan untuk saat ini. Jika Anda tidak akan terus menggunakan pekerjaan ini, hapus semua sumber daya yang dibuat oleh panduan mulai cepat ini dengan menjalankan cmdlet berikut:
Remove-AzResourceGroup `
-Name $resourceGroup
Langkah berikutnya
Dalam panduan mulai cepat ini, Anda menyebarkan pekerjaan Analisis Aliran sederhana menggunakan Azure CLI. Anda juga dapat menyebarkan pekerjaan Analisis Aliran menggunakan portal Microsoft Azure dan Visual Studio.
Untuk mempelajari cara mengonfigurasi sumber input lain dan melakukan deteksi real time, lanjutkan ke artikel berikut: