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 alan ve 27°'den büyük bir sıcaklığa sahip olayları filtreleyen bir ASA işini nasıl oluşturacağınızı öğrenin. Çı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 Almanya Kuzeydoğu 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 kullanmak yerine telefon kimlik doğrulamasını kullanın. Azure hesabınızın oturumunu kapatmak için tuşuna basın Ctrl + Shift + P ve girin Azure: Sign Out.

Girdi verilerini hazırlama

Stream Analytics işini tanımlamadan önce giriş verilerini hazırlayın. Çözüm, gerçek zamanlı algılayıcı verilerini IoT Hub'a aktarır, daha sonra yapılandırarak iş girişi olarak kullanırsınız. İşin gerektirdiği giriş verilerini hazırlamak için aşağıdaki adımları tamamlayın:

  1. Azure portalınaoturum açın.

  2. Kaynak oluştur’u seçin. Kaynak oluştur sayfasında Nesnelerin İnterneti IoT Hub'ı> seçin.

    Kaynak oluştur sayfasındaki IoT Hub menüsünü gösteren ekran görüntüsü.

  3. IoT Hub sayfasında şu adımları izleyin:

    1. Abonelik için Azure aboneliğinizi seçin.
    2. Kaynak grubu için mevcut bir kaynak grubunu seçin veya yeni bir kaynak grubu oluşturun.
    3. IoT hub'ı adı için IoT hub'ınız için bir ad girin.
    4. Bölge için size en yakın bölgeyi seçin.
    5. Katman için, aboneliğinizde hâlâ mevcutsa Ücretsiz'i seçin. Daha fazla bilgi için bkz. IoT Hub fiyatlandırması.
    6. Günlük ileti sınırı için varsayılan değeri koruyun.
    7. Sayfanın alt kısmındaki İleri: Ağ'ı seçin.

    Oluşturma için IoT Hub sayfasını gösteren ekran görüntüsü.

  4. Seçin, gözden geçir ve oluştur. IoT Hub bilgilerinizi gözden geçirin ve Oluştur'u seçin. IoT Hub'ınızın oluşturulması birkaç dakika sürebilir. İlerleme durumunu Bildirimler bölmesinden izleyebilirsiniz.

  5. Kaynak (IoT hub) oluşturulduktan sonra, IoT Hub sayfasına gitmek için Kaynağa git'i seçin.

  6. IoT Hub sayfasında, soldaki menüden Cihazlar'ı ve ardından + Cihaz ekle'yi seçin.

    Cihazlar sayfasındaki Cihaz ekle düğmesini gösteren ekran görüntüsü.

  7. Bir Cihaz Kimliği girin ve Kaydet'i seçin.

    Cihaz oluştur sayfasını gösteren ekran görüntüsü.

  8. Cihazı oluşturduktan sonra IoT cihazları listesinde görürsünüz. Görmüyorsanız sayfada Yenile düğmesini seçin.

    Cihaz listesini gösteren ekran görüntüsü.

  9. Listeden cihazınızı seçin.

  10. Cihaz sayfasında Birincil Bağlantı Dizesi'nin yanındaki kopyala düğmesini seçin ve daha sonra kullanmak üzere not defterine kaydedin.

    Cihaz bağlantı dizesi yanındaki kopyala düğmesini gösteren ekran görüntüsü.

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 önceki bölümde kaydettiğiniz Azure IoT Hub cihaz bağlantı dizesiyle değiştirin.

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

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

    Önemli

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

Blob depolama oluşturma

  1. Azure portalının sol üst köşesinden Bir kaynak oluşturun>Depolama>Depolama hesabı'nı 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'daKomut Paleti> seçin 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. Visual Studio Code çalışma alanınıza bir ASA projesi ekler. Üç 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ış eklediğinizde, ilgili yollar otomatik olarak asaproj.json dosyasına 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ştirip her asaproj.json dosyasındaki yolları belirterek bunlara farklı işlerde başvurabilirsiniz.

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şini yapılandır

  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 Input.json dosyası oluşturulduğunu görürsünüz.

  6. JSON dosyasında, Input öğesinin Name olarak belirtildiğinden emin olun.

  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'unuzdan bir örnek alır ve önizleme penceresinde gösterir.

    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. Takma adın adı olarak Çıkış girin ve ENTER tuşuna basın. Bu çıkış adı, sorgudaki INTO deyimi için kullanılır.
  5. Output.jsoniçin JSON düzenleyicisinde Aboneliklerinizden seç'i seçin 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. Aynı abonelikte oluşturulmuşlarsa, depolama hesabı adları otomatik olarak algılanır.
  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 derleyin ve Azure'a gönderin

Script derleme söz dizimi denetleme yapar 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'daki Stream Analytics gezgininden betik derleme seçeneğinin 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ın 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üğmesinin 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çeneklerinin 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üğmesinin 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üğmesinin ekran görüntüsü.

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

    Akış işini başlat penceresinin ekran görüntüsü.

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

    VS Code'da işin çalışma durumunun 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çın.

    Blob kapsayıcısında çıkış dosyasının 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

Kaynaklara artık ihtiyacınız kalmadığında kaynak grubunu, Stream Analytics işini ve tüm ilgili kaynakları silin. İşin silinmesi halinde, işin tükettiği akış birimleri için faturalandırma durur. gelecekte işi kullanmayı planlıyorsanız, işi durdurabilir ve daha sonra ihtiyacınız olduğunda 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 bakın: