Hızlı Başlangıç: Visual Studio Code kullanarak Stream Analytics işi oluşturma
Bu hızlı başlangıçta, yerel makinenizde Visual Studio Code için ASA Araçları uzantısını kullanarak Azure Stream Analytics (ASA) işi oluşturma, çalıştırma ve gönderme işlemleri gösterilir. IoT Hub'dan gerçek zamanlı akış verilerini okuyan ve 27°'den büyük bir sıcaklıkla olayları filtreleyen bir ASA işi oluşturmayı öğreneceksiniz. Çıkış sonuçları blob depolamadaki bir dosyaya gönderilir. Bu hızlı başlangıçta kullanılan giriş verileri Raspberry Pi çevrimiçi simülatörü tarafından oluşturulur.
Not
Visual Studio Code araçları Doğu Çin, Kuzey Çin, Orta Almanya ve Kuzey Almanya bölgelerindeki işleri desteklemez.
Önkoşullar
- Azure aboneliği. Azure aboneliğiniz yoksa ücretsiz bir hesap oluşturun.
- Visual Studio Code.
Azure Stream Analytics Araçları uzantısını yükleme
Visual Studio Code (VS Code) açın.
Sol bölmedeki Uzantılar'danakış analizi araması yapın ve Azure Stream Analytics Araçları uzantısında Yükle'yi seçin.
Yüklendikten sonra etkinlik çubuğundaKi Azure simgesini seçin ve Azure'da oturum açın.
Oturum açtıktan sonra Azure hesabınızın altındaki abonelikleri görebilirsiniz.
Not
ASA Araçları uzantısı, VS Code'un her açışında otomatik olarak oturum açar. Hesabınızda iki öğeli kimlik doğrulaması varsa PIN yerine telefon kimlik doğrulaması kullanmanızı öneririz. Azure hesabınızın oturumunu kapatmak için tuşuna basın Ctrl + Shift + P
ve yazın Azure: Sign Out
.
Girdi verilerini hazırlama
Stream Analytics işini tanımlamadan önce giriş verilerini hazırlamanız gerekir. Gerçek zamanlı algılayıcı verileri daha sonra iş girişi olarak yapılandırılan IoT Hub'ye alınmalıdır. İşin gerektirdiği giriş verilerini hazırlamak için şu adımları izleyin:
Azure Portal’ında oturum açın.
Kaynak > oluştur Nesnelerin > İnterneti IoT Hub'ı seçin.
IoT Hub sayfasında aşağıdaki bilgileri girin:
- Abonelik bölümünde Azure aboneliğinizi seçin.
- Kaynak grubu, var olan bir kaynak grubunu seçin veya yeni bir kaynak grubu oluşturun.
- IoT hub'ı adı, IoT hub'ınız için bir ad girin.
- Bölge, size en yakın bölgeyi seçin.
Fiyatlandırma ve ölçek katmanı için Yönetim sayfasına gidin ve aboneliğinizde hala kullanılabiliyorsa F1: Ücretsiz katman'ı seçin. Daha fazla bilgi için bkz. fiyatlandırma Azure IoT Hub.
Gözden geçir ve oluştur’u seçin. IoT hub bilgilerinizi gözden geçirin ve Oluştur'u seçin. Bu işlemin IoT hub'ınızı dağıtması birkaç dakika sürebilir.
IoT hub'ınız oluşturulduktan sonra kaynağa git'i seçerek IoT Hub sayfasına gidin. '
IoT Hub sayfasında soldaki menüden Cihazlar'ı ve ardından + Cihaz Ekle'yi seçin.
Bir Cihaz Kimliği girin ve Kaydet'i seçin.
Cihaz oluşturulduktan sonra IoT cihazları listesinden cihazı görmeniz gerekir. Görmüyorsanız sayfada Yenile düğmesini seçin.
Listeden cihazınızı seçin. Birincil Bağlantı Dizesi'ni kopyalayın ve daha sonra kullanmak üzere not defterine kaydedin.
IoT simülatörünü çalıştırma
Raspberry Pi Azure IoT Online Simulator'i yeni bir tarayıcı sekmesinde açın.
15. satırdaki yer tutucuyu daha önce kaydettiğiniz IoT hub cihazı bağlantı dizesiyle değiştirin.
Çalıştır'ı seçin. Çıktıda IoT hub'ınıza gönderilen algılayıcı verileri ve iletiler gösterilmelidir.
Blob depolama oluşturma
Azure portal sol üst köşesinden Kaynak >Depolama Depolama>hesabıoluştur'useçin.
Depolama hesabı oluştur bölmesinde bir depolama hesabı adı, konumu ve kaynak grubu girin. Oluşturduğunuz IoT hub'ı ile aynı konumu ve kaynak grubunu seçin. Ardından Gözden Geçir ve Oluştur'u seçerek depolama hesabını oluşturun.
Depolama hesabı sayfasında, soldaki menüden Kapsayıcılar'ı ve ardından komut çubuğunda + Kapsayıcı'yı seçin.
Yeni kapsayıcı sayfasında kapsayıcınız için bir ad sağlayın, Genel erişim düzeyiniÖzel (anonim erişim yok) olarak bırakın ve Tamam'ı seçin.
Stream Analytics projesi oluşturma
Visual Studio Code'da Ctrl+Shift+P tuşlarına basın ve ASA: Yeni Proje Oluştur yazın.
myASAproj gibi proje adınızı girin ve projeniz için bir klasör seçin.
Çalışma alanınıza bir ASA projesi eklenir. Üç klasörden oluşur: Girişler, Çıkışlar ve İşlevler. Ayrıca sorgu betiği (*.asaql), JobConfig.json dosyası ve asaproj.json yapılandırma dosyası vardır.
asaproj.json dosyası, Stream Analytics işini Azure'a göndermek için girişleri, çıkışları ve iş yapılandırma ayarlarını içerir.
Not
Komut paletinden girişler ve çıkışlar eklerken, karşılık gelen yollar otomatik olarak asaproj.json dosyasına eklenir. Diske doğrudan giriş veya çıkış ekler veya kaldırırsanız, bunları asaproj.json dosyasına el ile eklemeniz veya kaldırmanız gerekir. Girişleri ve çıkışları tek bir yere yerleştirmeyi ve ardından her asaproj.json dosyasındaki yolları belirterek bunlara farklı işlerde başvurmayı seçebilirsiniz.
Dönüşüm sorgusunu tanımlama
myASAproj.asaql dosyasını açın ve aşağıdaki sorguyu ekleyin:
SELECT * INTO Output FROM Input WHERE Temperature > 27
İş girişi yapılandırma
Stream Analytics projenizde Girişler klasörüne sağ tıklayın. Ardından bağlam menüsünden ASA: Giriş Ekle'yi seçin.
Ya da Ctrl+Shift+P tuşlarına basarak komut paletini açın ve ASA: Giriş Ekle yazın.
Giriş türü için IoT Hub seçin.
Açılan menüden bir ASA betiği *.asaql ve Azure Abonelikleri'ni seçin ve ENTER tuşuna basın.
Girişler klasörü altında bir IoTHub1.json dosyası oluşturulduğunu görürsünüz. Ayarları aşağıdaki önerilen değerlerle değiştirin ve burada bahsedilmeyen alanlar için varsayılan değerleri koruyun.
Ayar Önerilen Değer Açıklama Ad Giriş Bu giriş adı sorgudaki FROM deyimi için kullanılır. IotHubNamespace spiothub IoT hub'ınızın adı. Aboneliğinizden seçim yaparsanız IoT hub'ı adları otomatik olarak algılar. SharedAccessPolicyName iothubowner Giriş verilerinin işiniz için başarıyla yapılandırılıp yapılandırılmamış olduğunu görmek için Verileri önizle'yi seçin. IoT Hub örneğinizi getirir ve önizleme penceresinde gösterilir.
İş çıkışını yapılandırma
Komut paletini açmak için Ctrl+Shift+P tuşlarına basın ve ASA: Çıkış Ekle yazın.
Havuz türü için Data Lake Storage 2. Nesil/Blob Depolama'yı seçin.
Bu çıkışı kullanarak sorgu betiğini seçin.
Çıktı dosyası adı olarak BlobStorage1 girin.
Aşağıdaki değerleri kullanarak ayarları düzenleyin. Burada bahsedilmeyen alanlar için varsayılan değerleri koruyun.
Ayar Önerilen değer Açıklama Ad Çıkış Bu çıkış adı sorgudaki INTO deyimi için kullanılır. Depolama Hesabı spstorageaccount0901 Depolama hesabınızın adını seçin veya girin. Depolama hesabı adları aynı abonelikte oluşturulursa otomatik olarak algılar. Kapsayıcı spcontainer Depolama hesabınızda oluşturduğunuz mevcut kapsayıcıyı seçin.
Betiği derleme ve Azure'a gönderme
Betik derlemesi söz dizimini denetler ve otomatik dağıtım için Azure Resource Manager şablonlarını oluşturur.
Betiği sağ tıklatın ve ASA: Derleme Betiği'ni seçin.
Derlemeden sonra, projenizin altında iki Azure Resource Manager şablonu içeren bir Dağıt klasörü görürsünüz. Bu iki dosya otomatik dağıtım için kullanılır.
Sorgu düzenleyicisinde Azure'a Gönder'i seçin.
Ardından işlemi tamamlamak için yönergeleri izleyin: Abonelik > seçin İş seçin Yeni İş >> Girin iş adı > Kaynak grubunu ve bölgeyi seçin.
Azure'da yayımla ve tamamla'yı seçin. İşinizin durumunu gösteren yeni bir bulut işi görünümü sekmesi açmasını bekleyin.
Stream Analytics işini başlatıp çıktıyı denetleyin
Bulut İşi Görünümü sekmesinde Başlat'ı seçerek işinizi bulutta çalıştırın. Bu işlemin tamamlanması birkaç dakika sürebilir.
İşiniz başarıyla başlatılırsa, iş durumu Çalışıyor olarak değiştirilir. ASA işinizin nasıl çalıştığını gösteren mantıksal bir diyagram görebilirsiniz.
Çıktı sonuçlarını görüntülemek için blob depolamayı Visual Studio Code uzantısında veya Azure portal açabilirsiniz.
Çıktıyı görmek için dosyayı indirip açın.
{"messageId":11,"deviceId":"Raspberry Pi Web Client","temperature":28.165519323167562,"humidity":76.875393581654379,"EventProcessedUtcTime":"2022-09-01T22:53:58.1015921Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:52:57.6250000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:52:57.6290000Z"}} {"messageId":14,"deviceId":"Raspberry Pi Web Client","temperature":29.014941877871451,"humidity":64.93477299527828,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:03.6100000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:03.6140000Z"}} {"messageId":17,"deviceId":"Raspberry Pi Web Client","temperature":28.032846241745975,"humidity":66.146114343897338,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:19.5960000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:19.5830000Z"}} {"messageId":18,"deviceId":"Raspberry Pi Web Client","temperature":30.176185593576143,"humidity":72.697359909427419,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:21.6120000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:21.6140000Z"}} {"messageId":20,"deviceId":"Raspberry Pi Web Client","temperature":27.851894248213021,"humidity":71.610229530268214,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:25.6270000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:25.6140000Z"}} {"messageId":21,"deviceId":"Raspberry Pi Web Client","temperature":27.718624694772238,"humidity":66.540445035685153,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:48.0820000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:48.0830000Z"}} {"messageId":22,"deviceId":"Raspberry Pi Web Client","temperature":27.7849054424326,"humidity":74.300662748167085,"EventProcessedUtcTime":"2022-09-01T22:54:09.3393532Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:09.2390000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:09.2400000Z"}} {"messageId":28,"deviceId":"Raspberry Pi Web Client","temperature":30.839892925680324,"humidity":76.237611741451786,"EventProcessedUtcTime":"2022-09-01T22:54:47.8053253Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:47.6180000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:47.6150000Z"}} {"messageId":29,"deviceId":"Raspberry Pi Web Client","temperature":30.561040300759053,"humidity":78.3845172058103,"EventProcessedUtcTime":"2022-09-01T22:54:49.8070489Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:49.6030000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:49.5990000Z"}} {"messageId":31,"deviceId":"Raspberry Pi Web Client","temperature":28.163585438418679,"humidity":60.0511571297096,"EventProcessedUtcTime":"2022-09-01T22:55:25.1528729Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:24.9050000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:24.9120000Z"}} {"messageId":32,"deviceId":"Raspberry Pi Web Client","temperature":31.00503387156985,"humidity":78.68821066044552,"EventProcessedUtcTime":"2022-09-01T22:55:43.2652127Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:43.0480000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:43.0520000Z"}}
Kaynakları temizleme
Artık gerekli olmadığında kaynak grubunu, Stream Analytics işini ve tüm ilgili kaynakları silin. İşin silinmesi, iş tarafından kullanılan akış birimlerinin faturalanmasını önler. İşi gelecekte kullanmayı planlıyorsanız, durdurup daha sonra gerektiğinde yeniden başlatabilirsiniz. Bu işi kullanmaya devam etmeyecekseniz, aşağıdaki adımları kullanarak bu hızlı başlangıç tarafından oluşturulan tüm kaynakları silin:
Azure portal soldaki menüden Kaynak grupları'nı ve ardından oluşturduğunuz kaynağın adını seçin.
Kaynak grubunuzun sayfasında Sil’i seçin. Metin kutusuna silinecek kaynağın adını girin ve Sil'i seçin.
Sonraki adımlar
Visual Studio Code için ASA Araçları uzantısı hakkında daha fazla bilgi edinmek için aşağıdaki makalelere geçin: