Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ç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'ni 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ı karşıya yüklerken doğrulamak, dönüştürmek ve ana sistemde işlemek için blob tetiklemeli bir işlev kullanabilirsiniz.
Aşağıdaki öğreticilerde blob kapsayıcısında dosyaları işlemek için Blob tetikleyicisi (Event Grid tabanlı) kullanılır:
Örneğin blob kapsayıcılarında bir olay aboneliğiyle blob tetikleyicisini kullanın:
[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();
}
}
}
- Hızlı Başlangıç: Azure İşlevlerini kullanarak blob depolama olaylarına yanıt verme
- Örnek: Event Grid kaynak türü hızlı başlangıç örneğiyle blob tetikleyicisi)
- Eğitim (olaylar): Olay aboneliği kullanarak blob konteynerlerinde Azure İşlevlerini tetikleme
- Öğretici (polling): Azure Functions ve Blob Depolama ile bir dosyayı yükleyip analiz etme
- Hızlı Başlangıç: Azure İşlevlerini kullanarak blob depolama olaylarına yanıt verme
- Örnek: Event Grid kaynak türü hızlı başlangıç örneğiyle blob tetikleyicisi)
- Kılavuz (etkinlikler): Etkinlik aboneliği kullanarak blob kapsayıcılarında Azure İşlevlerini tetikleme
- Eğitici (polling): Azure İşlevleri ve Blob Depolama ile bir dosyayı karşıya yükleyip analiz etme
Gerçek zamanlı akış ve olay işleme
Bulut uygulamaları, IoT cihazları ve ağ cihazları büyük miktarda telemetri oluşturur ve toplar. Azure İşlevleri, bu verileri acil yol olarak neredeyse gerçek zamanlı olarak işleyebilir ve ardından analiz panosunda kullanılmak üzere Azure Cosmos DB'ye depolayabilir.
İşlevleriniz verileri neredeyse gerçek zamanlı olarak işlemek için Event Grid gibi düşük gecikme süreli olay tetikleyicilerini ve SignalR gibi gerçek zamanlı çıkışları da kullanabilir.
Ö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);
}
- Azure Event Hubs, Azure İşlevleri ve Azure SQL ile büyük ölçekte akış
- Azure Event Hubs, İşlevler ve Cosmos DB ile büyük ölçekte akış
- Kafka üreticisi ile Azure Event Hubs, Kafka tetikleyicisi ile İşlevler ve Cosmos DB kullanarak büyük ölçekte akış
- Azure IoT Hub, İşlevler ve Azure SQL ile büyük ölçekte akış
- Azure İşlevleri için Azure Event Hubs tetikleyicisi
- Azure İşlevleri için Apache Kafka tetikleyicisi
Makine öğrenimi ve AI
Azure İşlevleri, bulutta barındırılan akıllı uygulamalar oluşturmayı kolaylaştırmak için yapay zeka ve Azure hizmetleriyle tümleşen sunucusuz işlem kaynakları sağlar. Uzak Model İçerik Protokolü (MCP) sunucuları oluşturmak ve barındırmak ve çeşitli yapay zeka araçlarını uygulamak için İşlevler programlama modelini kullanabilirsiniz. Daha fazla bilgi için bkz. Araçlar ve MCP sunucuları.
Azure OpenAI bağlama uzantısı, Azure OpenAI hizmetinin alma artırılmış oluşturma (RAG) gibi yapay zeka özelliklerini ve davranışlarını işlev kodu yürütmelerinizle tümleştirmenize olanak tanır. Daha fazla bilgi için bkz. Bilgi erişimi ile artırılmış üretim.
Bir işlev, bir görüntü akışını işlemek ve sınıflandırmak için TensorFlow modelini veya Azure AI hizmetlerini de çağırabilir.
- Hızlı Başlangıç: Azure İşlevleri kullanarak özel bir uzak MCP sunucusu oluşturma
- Hızlı Başlangıç: Azure İşlevleri üzerinde MCP SDK'ları ile oluşturulmuş konak sunucuları
- Örnek: Azure İşlevleri kullanarak Uzak MCP Sunucularını Kullanmaya Başlama
- Örnek: Azure İşlevleri üzerinde resmi MCP SDK'ları ile oluşturulmuş uzak MCP sunucularını barındırma
- Hızlı Başlangıç: Azure İşlevleri kullanarak özel bir uzak MCP sunucusu oluşturma
- Hızlı Başlangıç: Azure İşlevleri üzerinde MCP SDK'ları ile oluşturulmuş konak sunucuları
- Örnek: Azure İşlevleri kullanarak Uzak MCP Sunucularını Kullanmaya Başlama
- Örnek: Azure İşlevleri üzerinde resmi MCP SDK'ları ile oluşturulmuş uzak MCP sunucularını barındırma
Daha fazla bilgi için bkz. Azure İşlevleri'nde yapay zeka araçlarını ve modellerini kullanma.
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.
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.
Ö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
}
Ö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.
GitHub webhooks gibi bir webhook entegrasyonu olarak HTTP tetiklemeli bir işleve sahip uç noktayı da kullanabilirsiniz. Bu şekilde GitHub olaylarından verileri işleyen işlevler oluşturabilirsiniz. Daha fazla bilgi için bkz. Azure İşlevleri ile web kancası kullanarak GitHub olaylarını izleme.
Ö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();
}
- Hızlı Başlangıç: Azure İşlevleri HTTP tetikleyicisi
- Makale: Azure İşlevleri ve API Management tümleştirmesi kullanarak Visual Studio'da sunucusuz API'ler oluşturma
- Eğitim: Azure API Management kullanarak birden çok işlev uygulamasını tutarlı bir API olarak kullanıma sunma
- Örnek: Statik Web Uygulamaları ve İşlevleri üzerinde C# API'si ve Azure SQL DB ile web uygulaması
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. Dayanıklı İşlevler uzantısını kullanarak uzun süreli orkestrasyonlar da oluşturabilirsiniz. Daha fazla bilgi için bkz. Dayanıklı İşlevler genel bakış.
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.
Ş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 İşlevler'i Azure mesajlaşma hizmetleriyle birlikte kullanabilirsiniz.
Örneğin, bir dizi işlev yürütmesini birbirine 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.
Bu makalelerde bir depolama kuyruğuna çıkış yazma işlemi gösterilmektedir:
Bu makalelerde Azure Service Bus kuyruğundan veya konu başlığından nasıl tetikleme işlemi yapılır gösterilmektedir.