Aracılığıyla paylaş


Hızlı Başlangıç: Azure CLI kullanarak Azure Stream Analytics işi oluşturma

Azure CLI kullanarak, bu hızlı başlangıçta 27 dereceden büyük bir sıcaklık okumasına sahip gerçek zamanlı algılayıcı iletilerini filtreleyen bir Stream Analytics işi tanımlayacaksınız. Stream Analytics işi IoT Hub'dan verileri okur, verileri dönüştürür ve çıktı verilerini blob depolamadaki bir kapsayıcıya yazar. Bu hızlı başlangıçta kullanılan giriş verileri bir Raspberry Pi çevrimiçi simülatörü tarafından oluşturulur.

Başlamadan önce

Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.

Önkoşullar

  • Bir kaynak grubu oluşturun. Tüm Azure kaynaklarının bir kaynak grubuna dağıtılması gerekir. Kaynak grupları, ilgili Azure kaynaklarını düzenlemenizi ve yönetmenizi sağlar.

    Bu hızlı başlangıç için, aşağıdaki az group create komutuyla eastus konumunda streamanalyticsrg adlı bir kaynak grubu oluşturun:

    az group create --name streamanalyticsrg --location eastus
    

Girdi verilerini hazırlama

Stream Analytics işini tanımlamadan önce, işin girişi için kullanılan verileri hazırlayın. Aşağıdaki Azure CLI komutları, işin gerektirdiği giriş verilerini hazırlar.

  1. az iot hub create komutunu kullanarak bir IoT Hub oluşturun. Bu örnek, MyASAIoTHub adlı bir IoT Hub oluşturur. IoT Hub adlarının genel olarak benzersiz olması gerektiğinden, zaten alınmışsa adı değiştirmeniz gerekebilir. Aboneliğinizde varsa ücretsiz katmanı kullanmak için SKU'yu F1 olarak ayarlayın. Aksi takdirde sonraki en düşük katmanı seçin.

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

    IoT hub'ı oluşturulduktan sonra az iot hub connection-string show komutunu kullanarak IoT Hub bağlantı dizesi alın. tüm bağlantı dizesi kopyalayın ve kaydedin. Bunu, IoT Hub'ı Stream Analytics işinize giriş olarak eklerken kullanırsınız.

    az iot hub connection-string show --hub-name $iotHubName
    
  2. az iothub device-identity create komutunu kullanarak IoT Hub'a cihaz ekleyin. Bu örnek MyASAIoTDevice adlı bir cihaz oluşturur.

    az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"
    
  3. az iot hub device-identity connection-string show komutunu kullanarak cihaz bağlantı dizesini alın. Bağlantı dizesi tamamını kopyalayın ve Raspberry Pi simülatörünü oluştururken için kaydedin.

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

    Çıkış örneği:

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

Blob depolama hesabı oluşturma

Aşağıdaki Azure CLI komutları, iş çıktısı için kullanılan bir blob depolama hesabı oluşturur.

  1. az storage account create komutuyla genel amaçlı bir depolama hesabı oluşturun . Genel amaçlı depolama hesabı dört hizmet için de kullanılabilir: bloblar, dosyalar, tablolar ve kuyruklar.

    storageAccountName="asatutorialstorage$RANDOM"
    az storage account create \
        --name $storageAccountName \
        --resource-group streamanalyticsrg \
        --location eastus \
        --sku Standard_ZRS \
        --encryption-services blob
    
  2. az storage account keys list komutunu çalıştırarak depolama hesabınızın anahtarını alın.

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

    Önemli

    Azure depolama hesabının erişim anahtarını not edin. Bu hızlı başlangıcın ilerleyen bölümlerinde bu anahtarı kullanacaksınız.

  3. az storage container create komutuyla blobları depolamak için adlı state bir kapsayıcı oluşturun . Kapsayıcıyı oluşturma işlemini yetkilendirmek için depolama hesabı anahtarını kullanırsınız. Azure CLI ile veri işlemlerini yetkilendirme hakkında daha fazla bilgi için bkz. Azure CLI ile blob veya kuyruk verilerine erişimi yetkilendirme.

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

Akış Analizi Görevi Oluşturun

az stream-analytics job create komutuyla bir Stream Analytics işi oluşturun.

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"

İş girdisini yapılandırma

az stream-analytics input cmdlet'ini kullanarak işinize giriş ekleyin. Bu cmdlet iş adını, iş giriş adını, kaynak grubu adını ve JSON biçimindeki giriş özelliklerini parametre olarak alır. Bu örnekte giriş olarak bir IoT Hub oluşturacaksınız.

Önemli

  • "IOT HUB ACCESS KEY'i kaydettiğiniz IOT Hub bağlantı dizesindeki Paylaşılan Erişim Anahtarı değeriyle değiştirin." Örneğin, IOT Hub bağlantı dizesi: HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=ise, Paylaşılan Erişim Anahtarı değeri olur xxxxxxxxxxxxxx=. Değeri değiştirirken, \ (çift tırnak) için " (kaçış) karakterini silmediğinizden emin olun.
  • iotHubNamespace dışında bir ad kullandıysanız, aşağıdaki komutta MyASAIoTHub değerini güncelleştirin. IoT Hub'ınızın adını görmek için komutunu çalıştırın echo $iotHubName .
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"

İş çıktısını yapılandırma

az stream-analytics output create cmdlet'ini kullanarak işinize bir çıkış ekleyin. Bu cmdlet iş adını, iş çıktı adını, kaynak grubu adını, JSON biçiminde veri kaynağını ve serileştirme türünü parametre olarak alır.

Önemli

Azure Depolama hesabınızın adı için STORAGEACCOUNTNAME> ve depolama hesabınızın erişim anahtarı için STORAGEACCESSKEY> değerini değiştirin. Bu değerleri not almadıysanız, bunları almak için aşağıdaki komutları çalıştırın: echo $storageAccountName ve echo $key. Değerleri değiştirirken, \ (çift tırnak) için " (kaçış) karakterini silmediğinizden emin olun.

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

Dönüşüm sorgusunu tanımlama

az stream-analytics transformation create cmdlet'ini kullanarak işinize bir dönüşüm ekleyin.

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 simülatörünü çalıştırma

  1. Raspberry Pi Azure IoT Online Simülatörü'ni açın.

  2. 15. satırdaki yer tutucuyu, hızlı başlangıç ​​başında kaydettiğiniz Azure IoT Hub Cihaz bağlantı dizesinin (IoT Hub bağlantı dizesi değil) tamamıyla değiştirin.

  3. Çalıştır'ı seçin. Çıktıda IoT Hub'ınıza gönderilen algılayıcı verileri ve iletileri gösterilmelidir.

    Raspberry Pi Azure IoT Online Simülatörü

Stream Analytics işini başlatıp çıktıyı denetleyin

az stream-analytics job start cmdlet'ini kullanarak işi başlatın. Bu cmdlet iş adı, kaynak grubu adı, çıktı başlangıç modu ve başlangıç saatini parametre olarak alır. OutputStartMode; JobStartTime, CustomTime veya LastOutputEventTime değerlerini kabul eder.

Aşağıdaki cmdlet’i çalıştırdıktan sonra iş başlarsa çıktı olarak True değeri döndürülür.

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

Birkaç dakika bekleyin ve ardından blob kapsayıcısında bir çıkış dosyası oluşturulduğunu state doğrulayın.

State blob kapsayıcısında çıkış dosyasını gösteren ekran görüntüsü.

Aşağıdakine benzer birkaç girdi görmek için dosyayı indirip açın:

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

Kaynakları temizle

Kaynak grubunu silin; bu da Stream Analytics işi, IoT Hub ve Azure Depolama hesabı dahil olmak üzere kaynak grubundaki tüm kaynakları siler.

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

Sonraki Adımlar

Bu hızlı başlangıçta, Azure CLI kullanarak basit bir Stream Analytics işi dağıttınız. Stream Analytics işlerini Azure portalı ve Visual Studio’yu kullanarak da dağıtabilirsiniz.

Diğer girdi kaynaklarını yapılandırma ve gerçek zamanlı algılama hakkında bilgi almak için aşağıdaki makaleye geçin: