Hızlı Başlangıç: Azure CLI kullanarak Azure Stream Analytics işi oluşturma
Bu hızlı başlangıçta Azure CLI kullanarak gerçek zamanlı algılayıcı iletilerini 27'den büyük bir sıcaklık okumasıyla 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 aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
Ön koşullar
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
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.
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
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"
az iot hub device-identity connection-string show komutunu kullanarak cihaz bağlantı dizesi 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.
az storage account create komutuyla bir genel amaçlı depolama hesabı oluşturun. Genel amaçlı depolama hesabı; bloblar, dosyalar, tablolar ve kuyruklar olmak üzere dört hizmet için de kullanılabilir.
storageAccountName="asatutorialstorage$RANDOM" az storage account create \ --name $storageAccountName \ --resource-group streamanalyticsrg \ --location eastus \ --sku Standard_ZRS \ --encryption-services blob
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.
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 işi oluşturma
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
- değerini, kaydettiğiniz IOT Hub bağlantı dizesi Paylaşılan Erişim Anahtarı değeriyle değiştirin
IOT HUB ACCESS KEY
. Örneğin, IOT Hub bağlantı dizesi:HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=
ise, Paylaşılan Erişim Anahtarı değeri olurxxxxxxxxxxxxxx=
. Değeri değiştirirken , (çift tırnak) için"
karakter silmediğinizden\
(kaçış) emin olun. - dışında
MyASAIoTHub
bir ad kullandıysanız aşağıdaki komutta değeriniiotHubNamespace
güncelleştirin. IoT Hub'ınızın adını görmek için komutunu çalıştırınecho $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
değerini Azure Depolama hesabınızın adıyla ve STORAGEACCESSKEY>
depolama hesabınızın erişim anahtarıyla değiştirinSTORAGEACCOUNTNAME>
. 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 "
karakter silmediğinizden \
(kaçış) 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şinizi dönüştürme 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
15. satırdaki yer tutucuyu hızlı başlangıcın başında kaydettiğiniz Azure IoT Hub Cihaz bağlantı dizesi (IoT Hub bağlantı dizesi değil) ile değiştirin.
Çalıştır seçin. Çıktıda IoT Hub'ınıza gönderilen algılayıcı verileri ve iletileri gösterilmelidir.
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.
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ı temizleme
Kaynak grubunu silin; bu işlem 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: