Azure İşlevleri senaryoları

Çoğu zaman, bir dizi kritik olaya tepki veren sistemler oluşturursunuz. Web API'sini oluştururken, veritabanı değişikliklerine yanıt verirken ya da olay akışlarını veya iletilerini işlerken bu sistemleri uygulamak için Azure İşlevleri kullanabilirsiniz.

Çoğu durumda işlev , zengin özelliklere sahip uygulamalar sağlamak için bir dizi bulut hizmetiyle tümleştirilir. Aşağıdaki listede, Azure İşlevleri için yaygın (ancak hiçbir şekilde kapsamlı olmayan) senaryolar gösterilmektedir.

Makalenin üst kısmında geliştirme dilinizi seçin.

Dosya yüklemelerini işleme

İşlevleri, blob depolama kapsayıcısında veya dışında dosyaları işlemek için çeşitli yollarla kullanabilirsiniz. Blob kapsayıcısında tetikleme seçenekleri hakkında daha fazla bilgi edinmek için en iyi yöntemler belgelerindeki Bloblarla çalışma bölümüne bakın.

Örneğin, bir perakende çözümünde iş ortağı sistemi ürün kataloğu bilgilerini blob depolamaya dosya olarak gönderebilir. Dosyaları yüklerken ana sisteme doğrulamak, dönüştürmek ve işlemek için blob tetiklemeli bir işlev kullanabilirsiniz.

Azure İşlevleri kullanarak dosya yükleme işleminin diyagramı.

Aşağıdaki öğreticilerde blob kapsayıcısında dosyaları işlemek için Azure Blob tetikleyicisi (Azure Event Grid tabanlı) kullanılır:

Örneğin Blob tetikleyicisini blob kapsayıcılarında bir olay aboneliğiyle kullanabilirsiniz:

[FunctionName("ProcessCatalogData")]
public static async Task Run([BlobTrigger("catalog-uploads/{name}", Source = BlobTriggerSource.EventGrid, Connection = "<NAMED_STORAGE_CONNECTION>")] Stream myCatalogData, string name, ILogger log)
{
    log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myCatalogData.Length} Bytes");

    using (var reader = new StreamReader(myCatalogData))
    {
        var catalogEntry = await reader.ReadLineAsync();
        while(catalogEntry !=null)
        {
            // Process the catalog entry
            // ...

            catalogEntry = await reader.ReadLineAsync();
        }
    }
}

Gerçek zamanlı akış ve olay işleme

Bulut uygulamaları, IoT cihazları ve ağ cihazları büyük miktarda müşteri verileri oluşturur ve toplar. Azure İşlevleri bu verileri sıcak yol olarak neredeyse gerçek zamanlı olarak işleyebilir, ardından analiz panosunda kullanılmak üzere Azure Cosmos DB içinde depolayabilir.

İşlevleriniz ayrıca Event Grid gibi düşük gecikme süreli olay tetikleyicilerini ve SignalR gibi gerçek zamanlı çıkışları kullanarak verileri neredeyse gerçek zamanlı olarak işleyebilir.

Azure İşlevleri kullanılarak gerçek zamanlı bir akış sürecinin diyagramı.

Örneğin, olay hub'ından veri okumak için olay hub tetikleyicisini ve olayları parçalayarak ve dönüştürerek bir olay hub'ına veri yazmak için çıkış bağlayıcısını kullanabilirsiniz.

[FunctionName("ProcessorFunction")]
public static async Task Run(
    [EventHubTrigger(
        "%Input_EH_Name%",
        Connection = "InputEventHubConnectionSetting",
        ConsumerGroup = "%Input_EH_ConsumerGroup%")] EventData[] inputMessages,
    [EventHub(
        "%Output_EH_Name%",
        Connection = "OutputEventHubConnectionSetting")] IAsyncCollector<SensorDataRecord> outputMessages,
    PartitionContext partitionContext,
    ILogger log)
{
    var debatcher = new Debatcher(log);
    var debatchedMessages = await debatcher.Debatch(inputMessages, partitionContext.PartitionId);

    var xformer = new Transformer(log);
    await xformer.Transform(debatchedMessages, partitionContext.PartitionId, outputMessages);
}

Yapay zeka destekli uygulamalar oluşturun

Azure İşlevleri'ı kullanarak veri ve API'leri yapay zeka istemcilerine erişilebilir hale getirin ve olay odaklı uygulamalara yapay zeka mantık ekleyebilirsiniz.

Verilerinizi ve API'lerinizi yapay zekaya açık hale getirin

Yapay zeka müşterileri ve ajanları, iş verilerine, API'lere ve uygulama mantığına kontrollü erişim sağlayan araçlara ihtiyaç duyar. Azure İşlevleri'ı kullanarak bu yetenekleri araç olarak ortaya koyan uzak Model Context Protocol (MCP) sunucuları oluşturabilir ve barındırabilirsiniz. Functions, MCP sunucunuz için yönetilen barındırma, kimlik doğrulama, ağ, izleme ve ölçeklendirme sağlar.

Örneğin, ürün envanterini, müşteri hesap verilerini veya mevcut bir iş API'sini, bir yapay zeka müşterisinin bulup arayabileceği araçlar olarak ortaya çıkarabilirsiniz.

Azure İşlevleri tarafından barındırılan ve iş API'lerine ve verilere kontrollü erişim sağlayan uzak MCP sunucusunu çağıran bir yapay zeka istemcisini gösteren diyagram.

İş etkinliklerine yapay zeka gerekçesi ekleyin

Bazı iş olayları, uygulamanızın bundan sonra ne yapacağına karar verebilmesi için mantık yürütmeyi gerektirir. Azure İşlevleri barındırılan beceriler, Markdown'da yapay zeka destekli çalışmayı tanımlamanızı ve programlardan, HTTP isteklerinden, kuyruk mesajlarından, depolama değişikliklerinden ve diğer olaylardan başlatmanıza olanak tanır. Barındırılan beceri, bir sonuç döndürmeden veya bir işlem gerçekleştirmeden önce araçları ve hizmetleri çağırabilir.

Örneğin, barındırılan bir yetenek gelen şikayeti sınıflandırabilir ve uygun kuyruda yönlendirebilir. Daha karmaşık işler için dinamik bir iş akışı, görevleri paralel olarak çalıştıran, harici koşulların gerçekleşmesini bekleyen ve çalışanlar yeniden başlatıldıktan sonra devam eden dayanıklı, çok adımlı bir plan oluşturabilir.

Azure İşlevleri'ta barındırılan bir becerinin başlatılmasını gösteren olayları, mesajları ve zamanlamaları gösteren diyagram; bu beceri Foundry modeli kullanır ve araçlar, API'ler, bağlayıcılar ve eylemleri çağırabilir.

Zamanlanmış görevleri çalıştırma

İşlevler, kodunuzu tanımladığınız bir cron zamanlamasına göre çalıştırmanıza olanak tanır.

Daha fazla bilgi edinmek için bkz. Azure portalında zamanlamaya göre çalışan bir işlev oluşturma.

Örneğin, aynı müşteriyle birden çok iletişimin oluşmasını önlemek için her 15 dakikada bir yinelenen girişler için bir finansal hizmetler müşteri veritabanını analiz edebilirsiniz.

Her 15 dakikada bir iş mantığına göre girdileri yinelenenlerden arındırarak veritabanını temizleyen bir işlevin zamanlanmış görevinin diyagramı.

Örnekler için şu kod parçacıklarına bakın:

[FunctionName("TimerTriggerCSharp")]
public static void Run([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer, ILogger log)
{
    if (myTimer.IsPastDue)
    {
        log.LogInformation("Timer is running late!");
    }
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

    // Perform the database deduplication
}
  • Quickstart: Azure İşlevleri

Şu örneği göz önünde bulundurun:

  • Quickstart: Azure İşlevleri

Şu örneği göz önünde bulundurun:

  • Quickstart: Azure İşlevleri

Şu örneği göz önünde bulundurun:

  • Quickstart: Azure İşlevleri

Şu örneği göz önünde bulundurun:

  • Quickstart: Azure İşlevleri

Şu örneği göz önünde bulundurun:

  • Quickstart: Azure İşlevleri

Ölçeklenebilir web API'si oluşturma

HTTP ile tetiklenen bir işlev bir HTTP uç noktasını tanımlar. Bu uç noktalar, diğer hizmetlere doğrudan veya bağlama uzantıları kullanarak bağlanabilen işlev kodunu çalıştırır. Uç noktaları web tabanlı bir API'de oluşturabilirsiniz.

HTTP ile tetiklenen bir işlev uç noktasını, GitHub gibi web kancası tümleştirmelerinde de kullanabilirsiniz. Bu şekilde, GitHub olaylarından verileri işleyen işlevler oluşturabilirsiniz. Daha fazla bilgi için bkz. Azure İşlevleri HTTP tetikleyicisi.

Azure İşlevleri kullanarak bir HTTP isteğinin işlenmesine ilişkin diyagram.

Örnekler için şu kod parçacıklarına bakın:

[FunctionName("InsertName")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequest req,
    [CosmosDB(
        databaseName: "my-database",
        collectionName: "my-container",
        ConnectionStringSetting = "CosmosDbConnectionString")]IAsyncCollector<dynamic> documentsOut,
    ILogger log)
{
    string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
    dynamic data = JsonConvert.DeserializeObject(requestBody);
    string name = data?.name;

    if (name == null)
    {
        return new BadRequestObjectResult("Please pass a name in the request body json");
    }

    // Add a JSON document to the output container.
    await documentsOut.AddAsync(new
    {
        // create a random ID
        id = System.Guid.NewGuid().ToString(),
        name = name
    });

    return new OkResult();
}
  • Quickstart: Azure İşlevleri
  • Quickstart: Azure İşlevleri
  • Quickstart: Azure İşlevleri
  • Quickstart: Azure İşlevleri
  • Quickstart: Azure İşlevleri

Sunucusuz iş akışı oluşturma

İşlevler genellikle Logic Apps iş akışı gibi sunucusuz bir iş akışı topolojisinde işlem bileşeni görevi görür. ayrıca Dayanıklı İşlevler uzantısını kullanarak uzun süre çalışan düzenleme oluşturabilirsiniz. Daha fazla bilgi için bkz. Dayanıklı İşlevler genel bakış.

Belirli sunucusuz iş akışları serisine ait birleşik bir diyagram, Azure İşlevleri kullanılarak.

Şu örnekleri göz önünde bulundurun:

Veritabanı değişikliklerine yanıt verme

Bazı işlemlerin depolanan veriler değiştiğinde günlüğe kaydetmesi, denetlemesi veya başka işlemler gerçekleştirmesi gerekir. İşlev tetikleyicileri, böyle bir işlemin ilk aşamasında yapılan veri değişikliklerine ilişkin bildirim almak için iyi bir yol sağlar.

Veritabanı değişikliklerine yanıt vermek için kullanılan bir işlevin diyagramı.

Şu örnekleri göz önünde bulundurun:

Güvenilir ileti sistemleri oluşturma

gelişmiş olay odaklı mesajlaşma çözümleri oluşturmak için Azure mesajlaşma hizmetleriyle İşlevler'i kullanabilirsiniz.

Örneğin, bir dizi işlev yürütmesini zincirlemenin bir yolu olarak Azure Depolama kuyruklarında tetikleyicileri kullanabilirsiniz. Alternatif olarak, çevrimiçi bir sipariş sistemi için service bus kuyruklarını ve tetikleyicilerini de kullanabilirsiniz.

 Güvenilir bir ileti sisteminde Azure İşlevleri diyagram.

Bu makalelerde bir depolama kuyruğuna çıkış yazma işlemi gösterilmektedir:

Bu makaleler, bir Azure Service Bus kuyruğundan veya konu başlığından nasıl tetikleneceğini gösterir.

  • Azure İşlevleri için Azure Service Bus tetikleyicisi
  • Azure İşlevleri için Azure Service Bus tetikleyicisi
  • Azure İşlevleri için Azure Service Bus tetikleyicisi
  • Azure İşlevleri için Azure Service Bus tetikleyicisi
  • Azure İşlevleri için Azure Service Bus tetikleyicisi
  • Azure İşlevleri için Azure Service Bus tetikleyicisi
  • Azure İşlevleri için Azure Service Bus tetikleyicisi

Sonraki adım