Mulai Cepat: Membuat pekerjaan Azure Stream Analytics menggunakan Azure CLI

Dalam mulai cepat ini, Anda akan menggunakan Azure CLI untuk menentukan pekerjaan Azure Stream Analytics yang memfilter pesan sensor real-time dengan pembacaan suhu yang lebih besar dari 27. Pekerjaan Azure Stream Analytics membaca data dari IoT Hub, mengubah data, dan menulis data output ke kontainer dalam penyimpanan blob. Data input yang digunakan dalam panduan mulai cepat ini dihasilkan oleh simulator online Raspberry Pi.

Sebelum Anda mulai

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Prasyarat

  • Buat grup sumber daya. Semua sumber daya Azure harus disebarkan ke grup sumber daya. Grup sumber daya memungkinkan Anda menata dan mengelola sumber daya Azure terkait.

    Untuk panduan mulai cepat ini, buat grup sumber daya bernama streamanalyticsrg di lokasi eastus dengan perintah az group create berikut:

    az group create --name streamanalyticsrg --location eastus
    

Menyiapkan data input

Sebelum Anda menentukan pekerjaan Analisis Aliran, siapkan data yang digunakan untuk input tugas. Perintah Azure CLI berikut menyiapkan data input yang diperlukan oleh pekerjaan.

  1. Buat IoT Hub menggunakan perintah az iot hub create. Contoh ini membuat IoT Hub yang disebut MyASAIoTHub. Karena nama IoT Hub harus unik secara global, Anda mungkin harus mengubah nama jika sudah diambil. Atur SKU ke F1 untuk menggunakan tingkat gratis jika tersedia dengan langganan Anda. Jika tidak, pilih tingkat terendah berikutnya.

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

    Setelah hub IoT dibuat, dapatkan IoT Hub string koneksi menggunakan perintah az iot hub connection-string show. Salin seluruh string koneksi dan simpan. Anda menggunakannya saat menambahkan IoT Hub sebagai input ke pekerjaan Azure Stream Analytics Anda.

    az iot hub connection-string show --hub-name $iotHubName
    
  2. Tambahkan perangkat ke IoT Hub menggunakan perintah az iothub device-identity create. Contoh ini membuat perangkat bernama MyASAIoTDevice.

    az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"
    
  3. Dapatkan string koneksi perangkat menggunakan perintah az iot hub device-identity connection-string show. Salin seluruh string koneksi dan simpan saat Anda membuat simulator Raspberry Pi.

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

    Contoh output:

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

Buat akun penyimpanan blob

Perintah Azure CLI berikut membuat akun penyimpanan blob yang digunakan untuk output pekerjaan.

  1. Buat akun penyimpanan serbaguna dengan perintah az storage account create. Akun penyimpanan serbaguna dapat digunakan untuk keempat layanan: blob, file, tabel, dan antrean.

    storageAccountName="asatutorialstorage$RANDOM"
    az storage account create \
        --name $storageAccountName \
        --resource-group streamanalyticsrg \
        --location eastus \
        --sku Standard_ZRS \
        --encryption-services blob
    
  2. Dapatkan kunci untuk akun penyimpanan Anda dengan menjalankan perintah az storage account keys list.

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

    Penting

    Catat kunci akses untuk akun penyimpanan Azure. Anda akan menggunakan kunci ini nanti dalam mulai cepat ini.

  3. Buat kontainer bernama state untuk menyimpan blob dengan perintah az storage container create . Anda menggunakan kunci akun penyimpanan untuk mengotorisasi operasi untuk membuat kontainer. Untuk informasi selengkapnya tentang otorisasi operasi data dengan Azure CLI, lihat Mengotorisasi akses ke blob atau data antrean dengan Azure CLI.

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

Membuat pekerjaan Azure Stream Analytics

Buat pekerjaan Analisis Aliran dengan perintah 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"

Konfigurasikan input ke pekerjaan

Tambahkan input ke pekerjaan Anda dengan menggunakan cmdlet input analisis aliran az. Cmdlet ini mengambil nama pekerjaan, nama input pekerjaan, nama grup sumber daya, dan properti input dalam format JSON sebagai parameter. Dalam contoh ini, Anda akan membuat IoT Hub sebagai input.

Penting

  • Ganti IOT HUB ACCESS KEY dengan nilai Kunci Akses Bersama di IOT Hub string koneksi Anda simpan. Misalnya, jika string koneksi IOT Hub adalah: HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=, nilai Kunci Akses Bersama adalah xxxxxxxxxxxxxx=. Saat mengganti nilai, pastikan Anda tidak menghapus \ karakter (escape) untuk " (tanda kutip ganda).
  • Perbarui nilai iotHubNamespace dalam perintah berikut jika Anda menggunakan nama selain MyASAIoTHub. Jalankan echo $iotHubName untuk melihat nama IoT Hub Anda.
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"

Konfigurasikan output ke pekerjaan

Tambahkan output ke pekerjaan Anda dengan menggunakan cmdlet az stream-analytics output create. Cmdlet ini mengambil nama pekerjaan, nama output pekerjaan, nama grup sumber daya, sumber data dalam format JSON, dan jenis serialisasi sebagai parameter.

Penting

Ganti STORAGEACCOUNTNAME> dengan nama akun Azure Storage Anda dan STORAGEACCESSKEY> dengan kunci akses untuk akun penyimpanan Anda. Jika Anda tidak mencatat nilai-nilai ini, jalankan perintah berikut untuk mendapatkannya: echo $storageAccountName dan echo $key. Saat mengganti nilai, pastikan Anda tidak menghapus \ karakter (escape) untuk " (tanda kutip ganda).

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

Tentukan kueri transformasi

Tambahkan transformasi pekerjaan Anda dengan menggunakan 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"

Menjalankan simulator IoT

  1. Buka Simulator Online Raspberry Pi Azure IoT.

  2. Ganti tempat penampung di baris 15 dengan seluruh Azure IoT Hub Device string koneksi (bukan IoT Hub string koneksi) yang Anda simpan di awal mulai cepat.

  3. Pilih Jalankan. Outputnya harus menunjukkan data sensor dan pesan yang dikirim ke IoT Hub Anda.

    Raspberry Pi Azure IoT Online Simulator

Memulai pekerjaan Stream Analytics dan memeriksa output

Mulai pekerjaan dengan menggunakan cmdlet az stream-analytics job start. Cmdlet ini mengambil nama pekerjaan, nama grup sumber daya, mode mulai output, dan waktu mulai sebagai parameter. OutputStartMode menerima nilai JobStartTime, CustomTime, atau LastOutputEventTime.

Setelah Anda menjalankan cmdlet berikut, ia mengembalikan True sebagai output ketika pekerjaan dimulai.

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

Beri beberapa menit lalu verifikasi bahwa file output dibuat dalam state kontainer blob.

Screenshot showing the output file in the State blob container.

Unduh dan buka file untuk melihat beberapa entri yang mirip dengan yang berikut ini:

{
    "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
    }
}

Membersihkan sumber daya

Hapus grup sumber daya, yang akan menghapus semua sumber daya dalam grup sumber daya termasuk pekerjaan Azure Stream Analytics, IoT Hub, dan akun Azure Storage.

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

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: