Aracılığıyla paylaş


Öğretici: Azure Stream Analytics işlerinden Azure İşlevleri çalıştırma

Bu öğreticide, Azure Event Hubs'dan olayları okuyan, olay verileri üzerinde bir sorgu çalıştıran ve ardından Redis için Azure Cache bir örneğe yazan bir Azure işlevi çağıran bir Azure Stream Analytics işi oluşturacaksınız.

Çözümdeki Azure hizmetleri arasındaki ilişkiyi gösteren ekran görüntüsü.

Not

  • İşlevleri Stream Analytics işinin havuzlarından (çıkışlar) biri olarak yapılandırarak Azure Stream Analytics'ten Azure İşlevleri çalıştırabilirsiniz. İşlevler, Azure veya üçüncü taraf hizmetlerinde gerçekleşen olayların tetiklediği kodu uygulamanıza olanak tanıyan olay odaklı, isteğe bağlı bir işlem deneyimidir. İşlevlerin tetikleyicilere yanıt vermeye yönelik bu özelliği, hizmeti Stream Analytics işleri için doğal bir çıktı haline getirmektedir.
  • Stream Analytics, HTTP tetikleyicileri aracılığıyla İşlevleri çağırır. İşlevlerin çıkış bağdaştırıcısı, kullanıcıların Stream Analytics sorgularına göre olayların tetiklenmesini sağlayacak şekilde Stream Analytics’e İşlevleri bağlamasına olanak tanır.
  • Çok kiracılı bir kümede çalışan bir Stream Analytics işinden sanal ağ (VNet) içinde Azure İşlevleri Bağlan desteklenmez.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Azure Event Hubs örneği oluşturma
  • Redis için Azure Cache örneği oluşturma
  • Azure İşlevi oluşturma
  • Akış Analizi işi oluşturma
  • Olay hub'ını giriş ve işlev olarak çıkış olarak yapılandırma
  • Stream Analytics işini çalıştırma
  • Sonuçlar için Redis için Azure Cache denetleyin

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Önkoşullar

Başlamadan önce aşağıdaki adımları tamamladığınızdan emin olun:

Azure'da oturum açma

Azure Portal’ında oturum açın.

Olay hub’ı oluşturma

Stream Analytics'in sahte çağrı veri akışını analiz etmeden önce bir olay hub'ına bazı örnek veriler göndermeniz gerekir. Bu öğreticide, Azure Event Hubs kullanarak Azure'a veri gönderirsiniz.

Olay hub'ı oluşturmak ve bu olay hub'ına çağrı verileri göndermek için aşağıdaki adımları kullanın:

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

  2. Soldaki menüden Tüm hizmetler'i seçin, nesnelerin İnterneti'ni seçin, fareyi Event Hubs'ın üzerine getirin ve + (Ekle) düğmesini seçin.

    Event Hubs oluşturma sayfasını gösteren ekran görüntüsü.

  3. Ad Alanı Oluştur sayfasında şu adımları izleyin:

    1. Olay hub'ını oluşturmak istediğiniz Azure aboneliğini seçin.

    2. Kaynak grubu için Yeni oluştur'u seçin ve kaynak grubu için bir ad girin. Event Hubs ad alanı bu kaynak grubunda oluşturulur.

    3. Ad alanı adı için Event Hubs ad alanı için benzersiz bir ad girin.

    4. Konum için, ad alanını oluşturmak istediğiniz bölgeyi seçin.

    5. Fiyatlandırma katmanı için Standart'ı seçin.

    6. Sayfanın alt kısmındaki Gözden geçir ve oluştur'u seçin.

      Ad Alanı Oluştur sayfasını gösteren ekran görüntüsü.

    7. Ad alanı oluşturma sihirbazının Gözden geçir + oluştur sayfasında, tüm ayarları gözden geçirdikten sonra sayfanın alt kısmındaki Oluştur'u seçin.

  4. Ad alanı başarıyla dağıtıldıktan sonra Kaynağa git'i seçerek Event Hubs Ad Alanı sayfasına gidin.

  5. Event Hubs Ad Alanı sayfasında, komut çubuğunda +Event Hub'ı seçin.

    Event Hubs Ad Alanı sayfasındaki Olay hub'ı ekle düğmesini gösteren ekran görüntüsü.

  6. Olay Hub'ı Oluştur sayfasında, olay hub'ı için bir Ad girin. Bölüm Sayısı'nı 2 olarak ayarlayın. Kalan ayarlardaki varsayılan seçenekleri kullanın ve Gözden geçir ve oluştur'u seçin.

    Olay hub'ı oluştur sayfasını gösteren ekran görüntüsü.

  7. Gözden geçir ve oluştur sayfasında, sayfanın alt kısmındaki Oluştur'u seçin. Ardından dağıtımın başarıyla tamamlanmasını bekleyin.

Olay hub’ına erişim verme ve bir bağlantı dizesi alma

Bir uygulamanın Azure Event Hubs'a veri gönderebilmesi için olay hub'ına erişim izni veren bir ilke olması gerekir. Erişim ilkesi, yetkilendirme bilgilerini içeren bir bağlantı dizesi oluşturur.

  1. Event Hubs Ad Alanı sayfasında soldaki menüden Paylaşılan erişim ilkeleri'ni seçin.

  2. İlke listesinden RootManageSharedAccessKey öğesini seçin.

  3. Ardından, Bağlan ion dizesi - birincil anahtar'ın yanındaki kopyala düğmesini seçin.

  4. Bağlantı dizesini bir metin düzenleyicisine yapıştırın. Sonraki bölümde bu bağlantı dizesine ihtiyacınız olacaktır.

    Bağlantı dizesi şu şekilde görünür:

    Endpoint=sb://<Your event hub namespace>.servicebus.windows.net/;SharedAccessKeyName=<Your shared access policy name>;SharedAccessKey=<generated key>

    bağlantı dizesi noktalı virgülle ayrılmış birden çok anahtar-değer çifti içerdiğine dikkat edin: Endpoint, SharedAccessKeyName ve SharedAccessKey.

Olay oluşturucu uygulamasını başlatma

TelcoGenerator uygulamasını başlatmadan önce bunu, daha önce oluşturduğunuz Azure Olay Hub’ına veri gönderecek şekilde yapılandırmanız gerekir.

  1. TelcoGenerator.zip dosyasının içeriklerini ayıklayın.

  2. TelcoGenerator\TelcoGenerator\telcodatagen.exe.config Dosyayı istediğiniz bir metin düzenleyicisinde açın Birden .config fazla dosya vardır, bu nedenle doğru dosyayı açtığınızdan emin olun.

  3. Config dosyasındaki <appSettings> öğesini şu bilgilerle güncelleştirin:

    • EventHubName anahtarının değerini bağlantı dizesi sonundaki EntityPath değerine ayarlayın.
    • Microsoft.ServiceBus.Bağlan değerini ayarlamaad alanına bağlantı dizesi ionString anahtarı. Ad alanı değil olay hub'ına bağlantı dizesi kullanıyorsanız, sonundaki değeri (;EntityPath=myeventhub) kaldırınEntityPath. EntityPath değerinden önceki noktalı virgülleri kaldırmayı unutmayın .
  4. Dosyayı kaydedin.

  5. Daha sonra bir komut penceresi açıp, TelcoGenerator uygulamasının sıkıştırmasını açtığınız klasöre geçin. Ardından aşağıdaki komutu girin:

    .\telcodatagen.exe 1000 0.2 2
    

    Bu komut aşağıdaki parametreleri alır:

    • Saat başına arama verisi kaydının sayısı.
    • Sahtekarlık olasılığının yüzdesi, uygulamanın ne sıklıkta sahte arama benzetimi gerçekleştirmesi gerektiği. 0,2 değeri, arama kayıtlarının yaklaşık %20'sinin sahte göründüğü anlamına gelir.
    • Saat cinsinden süre, uygulamanın çalışması gereken saat sayısı. Ayrıca, komut satırında işlemi (Ctrl+C) sonlandırarak uygulamayı istediğiniz zaman durdurabilirsiniz.

    Birkaç saniye sonra uygulama, telefon araması kayıtlarını olay hub'ına gönderirken ekranda bu kayıtları görüntülemeye başlar. Telefon araması verileri aşağıdaki alanları içerir:

    Kayıt Tanım
    CallrecTime Arama başlangıç zamanı için zaman damgası.
    SwitchNum Aramayı bağlamak için kullanılan telefon anahtarı. Bu örnekte anahtarlar, çıkış ülkesini/bölgesini (ABD, Çin, Birleşik Krallık, Almanya veya Avustralya) temsil eden dizelerdir.
    CallingNum Arayanın telefon numarası.
    CallingIMSI Uluslararası Mobil Abone Kimliği (IMSI). Bu, arayanın benzersiz tanımlayıcısıdır.
    CalledNum Arama alıcısının telefon numarası.
    CalledIMSI Uluslararası Mobil Abone Kimliği (IMSI). Bu, arama alıcısının benzersiz tanımlayıcısıdır.

Akış Analizi işi oluşturma

Arama olaylarından oluşan bir akışa sahip olduğunuza göre artık olay hub'ından veri okuyan bir Stream Analytics işi oluşturabilirsiniz.

  1. Stream Analytics işi oluşturmak için Azure portala gidin.
  2. Kaynak oluştur'u seçin ve Stream Analytics işini arayın. Stream Analytics iş kutucuğunu seçin ve Oluştur'u seçin.
  3. Yeni Stream Analytics işi sayfasında şu adımları izleyin:
    1. Abonelik için Event Hubs ad alanını içeren aboneliği seçin.

    2. Kaynak grubu için daha önce oluşturduğunuz kaynak grubunu seçin.

    3. Örnek ayrıntıları bölümünde, Ad için Stream Analytics işi için benzersiz bir ad girin.

    4. Bölge için Stream Analytics işini oluşturmak istediğiniz bölgeyi seçin. En iyi performans için işi ve olay hub'ını aynı bölgeye yerleştirmenizi ve bölgeler arasında veri aktarımı için ödeme yapmamanızı öneririz.

    5. Barındırma ortamı< için henüz seçili değilse Bulut'a tıklayın. Stream Analytics işleri buluta veya uca dağıtılabilir. Bulut, Azure Bulut'a dağıtmanıza ve Edge ise bir IoT Edge cihazına dağıtmanıza olanak tanır.

    6. Akış birimleri için 1'i seçin. Akış birimleri, bir işin yürütülmesi için gereken bilgi işlem kaynaklarını temsil eder. Varsayılan olarak, bu değer 1 olarak ayarlanır. Akış birimlerini ölçeklendirme hakkında bilgi edinmek için akış birimlerini anlama ve ayarlama başlıklı makaleye bakın.

    7. Sayfanın alt kısmındaki Gözden geçir ve oluştur'u seçin.

      Azure Stream Analytics oluştur iş sayfasını gösteren ekran görüntüsü.

  4. Gözden geçir ve oluştur sayfasında ayarları gözden geçirin ve ardından Oluştur'u seçerek Stream Analytics işini oluşturun.
  5. İş dağıtıldıktan sonra Kaynağa git'i seçerek Stream Analytics iş sayfasına gidin.

İş girişi yapılandırma

Bir sonraki adım, önceki bölümde oluşturduğunuz olay hub'ını kullanarak işin veri okuyacağı bir giriş kaynağı tanımlamaktır.

  1. Stream Analytics iş sayfasının soldaki menüde yer alan İş Topolojisi bölümünde Girişler'i seçin.

  2. Girişler sayfasında + Giriş ve Olay hub'ı ekle'yi seçin.

    Stream Analytics işinin Giriş sayfasını gösteren ekran görüntüsü.

  3. Olay hub'ı sayfasında şu adımları izleyin:

    1. Giriş diğer adı olarak CallStream girin. Giriş diğer adı, girişinizi tanımlamak için kolay bir addır. Giriş diğer adı alfasayısal karakter, kısa çizgi ve alt çizgi içerebilir, ayrıca 3 ila 63 karakter uzunluğunda olmalıdır.

    2. Abonelik için olay hub'ını oluşturduğunuz Azure aboneliğini seçin. Olay hub’ı Stream Analytics işiyle aynı abonelikte veya bundan farklı bir abonelikte olabilir.

    3. Event Hubs ad alanı için önceki bölümde oluşturduğunuz Event Hubs ad alanını seçin. Geçerli aboneliğinizde kullanılabilen tüm ad alanları açılan listede listelenir.

    4. Olay hub'ı adı için önceki bölümde oluşturduğunuz olay hub'ını seçin. Seçili ad alanında kullanılabilen tüm olay hub'ları açılan listede listelenir.

    5. Olay hub'ı tüketici grubu için Yeni oluştur seçeneğini seçili tutarak olay hub'ına yeni bir tüketici grubu oluşturun. Her Stream Analytics işi için ayrı bir tüketici grubu kullanmanızı öneririz. Hiçbir tüketici grubu belirtilmezse Stream Analytics işi tüketici grubunu kullanır $Default . bir iş kendi kendine birleşim içerdiğinde veya birden çok girişi olduğunda, daha sonra bazı girişler birden fazla okuyucu tarafından okunabilir. Bu durum, tek bir tüketici grubundaki okuyucu sayısını etkiler.

    6. Kimlik doğrulama modu için Bağlan ion dizesini seçin. Bu seçenekle öğreticiyi test etmek daha kolaydır.

    7. Olay hub'ı ilke adı için Var olanı kullan'ı ve ardından daha önce oluşturduğunuz ilkeyi seçin.

    8. Sayfanın alt kısmındaki Kaydet'i seçin.

      Giriş için Event Hubs yapılandırma sayfasını gösteren ekran görüntüsü.

Redis için Azure Cache örneği oluşturma

  1. önbellek oluşturma başlığında açıklanan adımları kullanarak Redis için Azure Cache'da önbellek oluşturun.

  2. Önbelleği oluşturduktan sonra Ayarlar altında Erişim Anahtarları’nı seçin. Birincil bağlantı dizesi’ni not edin.

    Erişim Anahtarı menü öğesinin seçimini gösteren ekran görüntüsü.

Azure İşlevleri'da Redis için Azure Cache veri yazabilen bir işlev oluşturma

  1. İşlevler belgesinin İşlev uygulaması oluşturma bölümüne bakın. Bu örnek aşağıdakiler üzerine kurulmuştur:

  2. Bu öğreticiyi izleyerek Visual Studio Code'da varsayılan bir HttpTrigger işlev uygulaması oluşturun. Aşağıdaki bilgiler kullanılır: language: C#, runtime: .NET 6 (v4 işlevi altında), şablon: HTTP trigger.

  3. Proje klasöründe bulunan bir terminalde aşağıdaki komutu çalıştırarak Redis istemci kitaplığını yükleyin:

    dotnet add package StackExchange.Redis --version 2.2.88
    
  4. hedef RedisDatabaseIndex sunucunun RedisConnectionStringValues bağlantı dizesi doldurarak ve öğelerini öğesini öğesinin local.settings.jsonbölümüne ekleyin:

    {
        "IsEncrypted": false,
        "Values": {
            "AzureWebJobsStorage": "",
            "FUNCTIONS_WORKER_RUNTIME": "dotnet",
            "RedisConnectionString": "Your Redis Connection String",
            "RedisDatabaseIndex":"0"
        }
    }
    

    Redis Veritabanı Dizini, örnekteki veritabanını tanımlayan 0 ile 15 sayısıdır.

  5. İşlevin tamamını (projedeki .cs dosyası) aşağıdaki kod parçacığıyla değiştirin. Ad alanını, sınıf adını ve işlev adını kendiniz güncelleştirin:

    using System;
    using System.IO;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Extensions.Http;
    using Microsoft.AspNetCore.Http;
    using Microsoft.Extensions.Logging;
    using Newtonsoft.Json;
    
    using StackExchange.Redis;
    
    namespace Company.Function
    {
        public static class HttpTrigger1{
            [FunctionName("HttpTrigger1")]
            public static async Task<IActionResult> Run(
                [HttpTrigger(AuthorizationLevel.Function, "get","post", Route = null)] HttpRequest req,
                ILogger log)
            {
                // Extract the body from the request
                string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
                if (string.IsNullOrEmpty(requestBody)) {return new StatusCodeResult(204);} // 204, ASA connectivity check
    
                dynamic data = JsonConvert.DeserializeObject(requestBody);
    
                // Reject if too large, as per the doc
                if (data.ToString().Length > 262144) {return new StatusCodeResult(413);} //HttpStatusCode.RequestEntityTooLarge
    
                string RedisConnectionString = Environment.GetEnvironmentVariable("RedisConnectionString");
                int RedisDatabaseIndex = int.Parse(Environment.GetEnvironmentVariable("RedisDatabaseIndex"));
    
                using (var connection = ConnectionMultiplexer.Connect(RedisConnectionString))
                {
                    // Connection refers to a property that returns a ConnectionMultiplexer
                    IDatabase db = connection.GetDatabase(RedisDatabaseIndex);
    
                    // Parse items and send to binding
                    for (var i = 0; i < data.Count; i++)
                    {
                        string key = data[i].Time + " - " + data[i].CallingNum1;
    
                        db.StringSet(key, data[i].ToString());
                        log.LogInformation($"Object put in database. Key is {key} and value is {data[i].ToString()}");
    
                        // Simple get of data types from the cache
                        string value = db.StringGet(key);
                        log.LogInformation($"Database got: {key} => {value}");
    
                    }
                }
                return new OkResult(); // 200
            }
        }
    }
    

    Stream Analytics işlevinden "HTTP İstek Varlığı Çok Büyük" özel durumunu aldığında, işlevlere gönderdiği toplu işlemlerin boyutunu küçültür. Aşağıdaki kod, Stream Analytics'in büyük toplu iş göndermemesini sağlar. İşlevde kullanılan en büyük toplu iş sayı ve boyut değerlerinin Stream Analytics portalına girilen değerlerle tutarlı olduğundan emin olun.

  6. İşlev artık Azure'da yayımlanabilir.

  7. İşlevi Azure portalında açın ve ve RedisDatabaseIndexiçin RedisConnectionString uygulama ayarlarını yapın.

Çıktı olarak işlevle Stream Analytics işini güncelleştirme

  1. Stream Analytics işinizi Azure portalında açın.

  2. İşlevinize göz atın ve Genel Bakış>Çıktılar>Ekle’yi seçin. Yeni bir çıktı eklemek için havuz seçeneği olarak Azure İşlevi’ni seçin. İşlevler çıkış bağdaştırıcısı aşağıdaki özelliklere sahiptir:

    Özellik adı Açıklama
    Çıktı diğer adı İşin sorgusunda çıktıya başvurmak için kullandığınız kolay ad.
    İçeri aktarma seçeneği Geçerli abonelikteki işlevi kullanabilir veya işlev başka bir abonelikte bulunuyorsa ayarları el ile sağlayabilirsiniz.
    İşlev Uygulaması İşlevler uygulamanızın adı.
    İşlev İşlevler uygulamanızdaki işlevin adı (run.csx işlevinizin adı).
    En Büyük Toplu İş Boyutu İşlevinize bayt cinsinden gönderilen her çıkış toplu işleminin en büyük boyutunu ayarlar. Varsayılan olarak, bu değer 262.144 bayt (256 KB) olarak ayarlanır.
    En Büyük Toplu İş Sayısı İşleve gönderilen her toplu işteki en büyük olay sayısını belirtir. Varsayılan değer 100 şeklindedir. Bu özellik isteğe bağlıdır.
    Anahtar Başka bir abonelikteki işlevi kullanmanıza olanak sağlar. İşlevinize erişmek için anahtar değerini sağlayın. Bu özellik isteğe bağlıdır.
  3. Çıktı diğer adı için bir ad belirtin. Bu öğreticide saop1 olarak adlandırılır, ancak istediğiniz herhangi bir adı kullanabilirsiniz. Diğer ayrıntıları girin.

  4. Stream Analytics işinizi açın ve sorguyu aşağıdaki gibi güncelleştirin.

    Önemli

    Aşağıdaki örnek betikte giriş adı için CallStream ve çıkış adı için saop1 kullandığınız varsayılır. Farklı adlar kullandıysanız sorguyu güncelleştirmeyi unutmayın.

     SELECT
             System.Timestamp as Time, CS1.CallingIMSI, CS1.CallingNum as CallingNum1,
             CS2.CallingNum as CallingNum2, CS1.SwitchNum as Switch1, CS2.SwitchNum as Switch2
         INTO saop1
         FROM CallStream CS1 TIMESTAMP BY CallRecTime
            JOIN CallStream CS2 TIMESTAMP BY CallRecTime
             ON CS1.CallingIMSI = CS2.CallingIMSI AND DATEDIFF(ss, CS1, CS2) BETWEEN 1 AND 5
         WHERE CS1.SwitchNum != CS2.SwitchNum
    
  5. Komut satırında aşağıdaki komutu çalıştırarak telcodatagen.exe uygulamasını başlatın. komutu biçimini telcodatagen.exe [#NumCDRsPerHour] [SIM Card Fraud Probability] [#DurationHours]kullanır.

    telcodatagen.exe 1000 0.2 2
    
  6. Stream Analytics işini başlatın.

  7. Azure işlevinizin İzleyici sayfasında işlevin çağrıldığını görürsünüz.

    İşlev çağrılarıyla Azure İşlevleri için İzleyici sayfasını gösteren ekran görüntüsü.

  8. Önbelleğinizin Redis için Azure Cache sayfasında soldaki menüden Ölçümler'i seçin, Önbellek Yazma ölçümü ekleyin ve süreyi son saat olarak ayarlayın. Grafiği aşağıdaki görüntüye benzer şekilde görürsünüz.

    Redis için Azure Cache ölçümler sayfasını gösteren ekran görüntüsü.

Sonuçlar için Redis için Azure Cache denetleyin

anahtarı Azure İşlevleri günlüklerinden alma

İlk olarak, Redis için Azure Cache eklenen bir kaydın anahtarını alın. Kodda anahtar, aşağıdaki kod parçacığında gösterildiği gibi Azure işlevinde hesaplanır:

string key = data[i].Time + " - " + data[i].CallingNum1;

db.StringSet(key, data[i].ToString());
log.LogInformation($"Object put in database. Key is {key} and value is {data[i].ToString()}");
  1. Azure portalına gidin ve Azure İşlevleri uygulamanızı bulun.

  2. Soldaki menüden İşlevler'i seçin.

  3. İşlev listesinden HTTPTrigger1'i seçin.

  4. Soldaki menüden İzleyici'yi seçin.

  5. Günlükler sekmesine geçin.

  6. Aşağıdaki ekran görüntüsünde gösterildiği gibi bilgilendirme iletisindeki bir anahtarı not edin. Redis için Azure Cache değerini bulmak için bu anahtarı kullanırsınız.

    Azure işlevinin günlüklerini izleme sayfasını gösteren ekran görüntüsü.

Redis için Azure Cache'de kaydı bulmak için anahtarını kullanın

  1. Azure portalına gidin ve Redis için Azure Cache bulun. Konsol’u seçin.

  2. Verilerinizin Redis için Azure Cache olduğunu doğrulamak için Redis için Azure Cache komutlarını kullanın. (Komut Get {key} biçimini alır.) Azure işlevi için İzleyici günlüklerinden kopyaladığınız anahtarı kullanın (önceki bölümde).

    "KEY-FROM-THE-PREVIOUS-SECTION"

    Bu komut, belirtilen anahtarın değerini yazdırmalıdır:

    Al komutunun çıkışını gösteren Redis Cache konsolunu gösteren ekran görüntüsü.

Hata işleme ve yeniden deneme

olayları Azure İşlevleri gönderirken bir hata oluşursa Stream Analytics çoğu işlemi yeniden dener. Http hatası 413 (varlık çok büyük) dışında tüm http özel durumları başarılı olana kadar yeniden deneniyor. Çok büyük bir varlık hatası, yeniden deneme veya bırakma ilkesine tabi olan bir veri hatası olarak kabul edilir.

Not

Stream Analytics'ten Azure İşlevleri http istekleri için zaman aşımı 100 saniye olarak ayarlanır. Azure İşlevleri uygulamanızın bir toplu işlemi işlemesi 100 saniyeden uzun sürüyorsa Stream Analytics hatalarıyla sonuçlanır ve toplu iş için gerekli miktarı sağlar.

Zaman aşımları için yeniden deneme, çıkış havuzuna yazılan yinelenen olaylara neden olabilir. Stream Analytics başarısız bir toplu iş için yeniden denendiğinde, toplu işteki tüm olaylar için yeniden denenir. Örneğin, Stream Analytics'ten Azure İşlevleri gönderilen 20 olaylık bir toplu işlemi düşünün. Azure İşlevleri toplu işlemdeki ilk 10 olayın işlenmesinin 100 saniye sürdüğünü varsayalım. 100 saniye sonra Stream Analytics, Azure İşlevleri'dan olumlu yanıt almadığından isteği askıya alır ve aynı toplu işlem için başka bir istek gönderilir. Toplu işlemdeki ilk 10 olay Azure İşlevleri tarafından yeniden işlenir ve bu da yinelenen bir duruma neden olur.

Bilinen sorunlar

Azure portalında En Büyük Toplu İş Boyutu/En Büyük Toplu İş Sayısı değerini boş (varsayılan) olarak sıfırlamaya çalıştığınızda değer kaydedildikten sonra daha önce girilen değerle değiştirilir. Bu durumda bu alanların varsayılan değerlerini el ile girin.

Azure İşlevleri'nizde HTTP yönlendirme kullanımı şu anda Stream Analytics tarafından desteklenmiyor.

Sanal ağda barındırılan Azure İşlevleri bağlanma desteği etkinleştirilmedi.

Kaynakları temizleme

Artık gerekli olmadığında kaynak grubunu, akış 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ında sol taraftaki menüden, Kaynak grupları'nı ve ardından oluşturduğunuz kaynağın adını seçin.
  2. Kaynak grubu sayfanızda, Sil'i seçin, metin kutusuna silinecek kaynağın adını yazın ve ardından Sil'i seçin.

Sonraki adımlar

Bu öğreticide, Azure İşlevi çalıştıran basit bir Stream Analytics işi oluşturdunuz. Stream Analytics işleri hakkında daha fazla bilgi edinmek için sonraki öğreticiye geçin: