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 Stream Analytics Araçları uzantısını yükleme

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

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

    Stream Analytics uzantısını yükleme seçeneğiyle Visual Studio Code 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 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:

  1. Azure Portal’ında oturum açın.

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

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

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

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

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

    IoT Hub yönetim sayfasını gösteren ekran görüntüsü.

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

  6. IoT hub'ınız oluşturulduktan sonra kaynağa git'i seçerek IoT Hub sayfasına gidin. '

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

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

    Cihaz Ekle sayfasını gösteren ekran görüntüsü.

  9. Cihaz oluşturulduktan sonra IoT cihazları listesinden cihazı görmeniz gerekir. Görmüyorsanız sayfada Yenile düğmesini seçin.

    Cihazlar sayfasında cihazın seçimini gösteren ekran görüntüsü.

  10. Listeden cihazınızı seçin. Birincil Bağlantı Dizesi'ni kopyalayın ve daha sonra kullanmak üzere not defterine kaydedin.

    Oluşturduğunuz cihazın birincil bağlantı dizesini gösteren ekran görüntüsü.

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

  1. Raspberry Pi Azure IoT Online Simulator'i yeni bir tarayıcı sekmesinde açın.

  2. 15. satırdaki yer tutucuyu daha önce kaydettiğiniz 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 iletiler gösterilmelidir.

    Raspberry Pi Azure IoT Online Simulator'ın çıkışını gösteren ekran görüntüsü.

Blob depolama oluşturma

  1. Azure portal sol üst köşesinden Kaynak >Depolama Depolama>hesabıoluştur'useç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'ı 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 sağlayın, 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ş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

  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 bir ASA betiği *.asaql ve Azure Abonelikleri'ni seçin ve ENTER tuşuna basın.

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

    VS Code'da IoT Hub yapılandırmasını gösteren ekran görüntüsü.

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

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

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

  1. Komut paletini açmak için Ctrl+Shift+P tuşlarına basın ve ASA: Çıkış Ekle yazın.

  2. Havuz türü için Data Lake Storage 2. Nesil/Blob Depolama'yı seçin.

  3. Bu çıkışı kullanarak sorgu betiğini seçin.

  4. Çıktı dosyası adı olarak BlobStorage1 girin.

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

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 derlemesi söz dizimini denetler ve otomatik dağıtım için Azure Resource Manager şablonlarını oluşturur.

  1. Betiği sağ tıklatın ve ASA: Derleme Betiği'ni 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şi gönder düğmesini gösteren ekran görüntüsü.

    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.

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

    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. Bu işlemin tamamlanması birkaç dakika sürebilir.

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

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

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

  3. Çıktı sonuçlarını görüntülemek için blob depolamayı Visual Studio Code uzantısında veya Azure portal 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 soldaki menüden 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: