Aracılığıyla paylaş


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 bir Azure Stream Analytics (ASA) işi oluşturacak, çalıştıracak ve göndereceksiniz. 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ı öğrenirsiniz. Çıktı sonuçları blob depolamadaki bir dosyaya gönderilir. Bu hızlı başlangıçta kullanılan giriş verileri bir 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 Stream Analytics Araçları uzantısını yükleme

  1. Visual Studio Code'ı (VS Code) açın.

  2. Sol bölmedeki Uzantılar'dan akış analizi araması yapın ve Azure Stream Analytics Araçları uzantısında Yükle'yiseçin.

    Stream Analytics uzantısını yükleme seçeneğiyle Visual Studio Code'un Uzantılar sayfasını gösteren ekran görüntüsü.

  3. Yüklendikten sonra etkinlik çubuğundaki Azure simgesini seçin ve Azure'da oturum açın.

    Azure'da oturum açmayı gösteren ekran görüntüsü.

  4. Oturum açtıktan sonra abonelikleri Azure hesabınızın altında 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 girin Azure: Sign Out.

IoT simülatörünü çalıştırma

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

  2. Satır 15'teki yer tutucuyu önceki bir bölüme kaydettiğiniz bağlantı dizesi Azure IoT Hub cihazı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.

    Örnek sorguyu içeren **Raspberry Pi Azure IoT Online Simulator** sayfasını gösteren ekran görüntüsü.

    Önemli

    bağlantı dizesi sıfırlamak için birkaç dakika sonra Sıfırla'yı seçin.

Blob depolama oluşturma

  1. Azure portalının sol üst köşesinden Kaynak>Depolama Depolama>hesabı oluştur'u seçin.

    Depolama hesabı oluştur menüsünü gösteren ekran görüntüsü.

  2. 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ı oluştur sayfasını gösteren ekran görüntüsü.

  3. Depolama hesabı sayfasında, soldaki menüden Kapsayıcılar'ı seçin ve ardından komut çubuğunda + Kapsayıcı'yı seçin.

    Kapsayıcılar sayfasını gösteren ekran görüntüsü.

  4. Yeni kapsayıcı sayfasında kapsayıcınız için bir ad girin, Genel erişim düzeyini Özel (anonim erişim yok) olarak bırakın ve Tamam'ı seçin.

    Blob kapsayıcısı sayfasının oluşturulmasını gösteren ekran görüntüsü.

Stream Analytics projesi oluşturma

  1. Visual Studio Code'da Ctrl+Shift+P tuşlarına basın ve ASA: Yeni Proje Oluştur yazın.

    Komut paletinde ASA: Yeni Proje Oluştur seçimini gösteren ekran görüntüsü.

  2. myASAproj gibi proje adınızı girin ve projeniz için bir klasör seçin.

    ASA proje adını girmeyi gösteren ekran görüntüsü.

  3. Ç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.

    Visual Studio Code'daki Stream Analytics proje dosyalarını gösteren ekran görüntüsü.

    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ş ve çıkış eklerken, ilgili yollar otomatik olarak asaproj.json eklenir. Diske doğrudan giriş veya çıkış ekler veya kaldırırsanız, bunları el ile eklemeniz veya asaproj.json 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

  1. myASAproj.asaql dosyasını açın ve aşağıdaki sorguyu ekleyin:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    Dönüştürme sorgusunu gösteren ekran görüntüsü.

İş girişi yapılandırma

  1. 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.

    Visual Studio Code'da ASA: Giriş ekle menüsünü gösteren ekran görüntüsü.

    Ya da Ctrl+Shift+P tuşlarına basarak komut paletini açın ve ASA: Giriş Ekle yazın.

  2. Giriş türü için IoT Hub'ı seçin.

    VS Code komut paletinde IoT hub'ınızın seçimini gösteren ekran görüntüsü.

  3. Açılan menüden Azure aboneliklerinden seç'i seçin ve ENTER tuşuna basın.

  4. Ad için Giriş yazın ve ENTER tuşuna basın.

  5. Girişler klasörü altında bir IoTHub1.json dosyası oluşturulduğunu görürsünüz.

  6. JSON dosyasında, Girdinin Belirtilen Ad olduğunu onaylayın.

  7. Input.json için JSON düzenleyicisinde Aboneliklerinizden seç'i seçin ve ardından IoT hub'ı olan Azure aboneliğinizi seçin.

    Aboneliklerinizden seç bağlantısını içeren JSON düzenleyicisini gösteren ekran görüntüsü.

  8. JSON düzenleyicisinde IoT Hub'ı seçin'i ve ardından oluşturduğunuz IoT hub'ını seçin.

    IoT Hub'ı seçin bağlantısını içeren JSON düzenleyicisini gösteren ekran görüntüsü.

  9. Varsayılan olarak, SharedAccessPolicyName olarak ayarlanmalıdır iothubowner. Yoksa, Paylaşılan Erişim İlkesi Adı seçin bağlantısını seçin ve ardından açılan listeden iothubowner'ı seçin.

  10. Değer SharedAccessPolicyKey otomatik olarak ayarlanmalıdır.

  11. 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 önizleme'yi seçin. IoT Hub örneğinizi getirir ve önizleme penceresinde gösterilir.

    IoT hub'ınızdaki giriş verilerinin önizlemesini gösteren ekran görüntüsü.

İş çıkışını yapılandırma

  1. Gezginde Çıkışlar'a sağ tıklayın ve ASA: Çıktı Ekle'yi seçin.
  2. Açılan listede havuz türü için Data Lake Storage 2. Nesil/Blob Depolama'yı seçin.
  3. Azure aboneliklerinden seç'i seçin
  4. Diğer adın adı için Çıkış girin ve ENTER tuşuna basın. Bu çıkış adı sorgudaki INTO deyimi için kullanılır.
  5. Output.json için JSON düzenleyicisinde Aboneliklerinizden seç'i ve ardından Azure Depolama hesabı olan Azure aboneliğinizi seçin
  6. Otomatik olarak doldurulan depolama hesabını değiştirmeniz gerekiyorsa Depolama hesabı seçin'i ve ardından Azure Depolama hesabınızı seçin. Depolama hesabı adları aynı abonelikte oluşturulursa otomatik olarak algılar.
  7. Kapsayıcı adını değiştirmeniz gerekiyorsa Kapsayıcı seç'i seçin ve oluşturduğunuz blob kapsayıcısını seçin.

Stream Analytics işi için çıkışın yapılandırmasını gösteren ekran görüntüsü.

Betiği derleme ve Azure'a gönderme

Betik derleme söz dizimini denetler ve otomatik dağıtım için Azure Resource Manager şablonlarını oluşturur.

  1. Gezgin penceresinde betik dosyasına sağ tıklayın, ASA: Derleme Betiği'nin üzerine gelin ve ardından ASA: ARM Şablonu V2 (önerilir)'i seçin.

    VS Code'da Stream Analytics gezgininden betik seçeneğinin derlenmesini gösteren ekran görüntüsü.

  2. 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.

    Proje klasöründe oluşturulan dağıtım şablonlarını gösteren ekran görüntüsü.

  3. Sorgu düzenleyicisinde Azure'a gönder'i seçin.

    Stream Analytics işini Azure'a göndermek için İşi gönder düğmesini gösteren ekran görüntüsü.

  4. Gönder penceresinde şu adımları izleyin:

    1. Azure aboneliğinizi seçin.

    2. Bir Azure kaynak grubu seçin.

    3. Stream Analytics işini oluşturmak istediğiniz bölgeyi seçin.

    4. Ardından Gönder'i seçin.

      Gönder seçeneklerini gösteren ekran görüntüsü.

  5. Azure'da yayımla'yı seçin ve tamamlayın. bunun, işinizin durumunu gösteren yeni bir Bulut İşi Görünümü sekmesi açmasını bekleyin.

    VS Code'da Azure'da yayımla düğmesini gösteren ekran görüntüsü.

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

  1. Bulut İşi Görünümü sekmesinde Başlat'ı seçerek işinizi bulutta çalıştırın.

    Bulut görünümü sayfasındaki İşi başlat düğmesini gösteren ekran görüntüsü.

  2. Akış işini başlat penceresinde Tamam'ı seçin. Bu işlemin tamamlanması birkaç dakika sürer.

  3. İşiniz başarıyla başlarsa, iş durumu Çalışıyor olarak değiştirilir. ASA işinizin nasıl çalıştığını gösteren bir mantıksal diyagram görebilirsiniz.

    VS Code'da işin çalışma durumunu gösteren ekran görüntüsü.

  4. Çıktı sonuçlarını görüntülemek için blob depolama alanını Visual Studio Code uzantısında veya Azure portalında açabilirsiniz.

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

    Çı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:

  1. Azure portalının sol menüsünden Kaynak grupları'nı ve ardından oluşturduğunuz kaynağın adını seçin.

  2. 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: