Azure İşlevleri senaryoları
Genellikle bir dizi kritik olaya tepki vermek için sistemler oluştururuz. Web API'si oluştururken, veritabanı değişikliklerine yanıt verirken, olay akışlarını veya iletilerini işlerken Azure İşlevleri bunları uygulamak için kullanılabilir.
Çoğu durumda işlev , zengin özelliklere sahip uygulamalar sağlamak için bir dizi bulut hizmetiyle tümleştirilir. Aşağıdakiler, Azure İşlevleri için yaygın (ancak hiçbir şekilde kapsamlı olmayan) bir senaryo kümesidir.
Makalenin üst kısmında geliştirme dilinizi seçin.
Dosya yüklemelerini işleme
Blob depolama kapsayıcısı içinde veya dışında dosyaları işlemek için işlevleri kullanmanın birkaç yolu vardır. 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. Karşıya yüklenen dosyaları doğrulamak, dönüştürmek ve ana sisteme işlemek için blob ile tetiklenen 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 kullanma:
[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();
}
}
}
- PDF belgelerini büyük ölçekte metne dönüştüren olay tabanlı Blob depolama tetikleme işlevi
- Azure İşlevleri ve Blob Depolama ile bir dosyayı karşıya yükleme ve analiz etme
- Karşıya yüklenen görüntüleri yeniden boyutlandırmayı Event Grid kullanarak otomatikleştirme
- Olay aboneliği kullanarak blob kapsayıcılarında Azure İşlevleri tetikleme
Gerçek zamanlı akış ve olay işleme
Bulut uygulamalarından, IoT cihazlarından ve ağ cihazlarından çok fazla telemetri oluşturulur ve toplanır. Azure İşlevleri bu verileri sık erişimli yol olarak neredeyse gerçek zamanlı olarak işleyebilir ve ardından Analiz panosunda kullanılmak üzere Azure Cosmos DB.
İş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'larını kullanarak bir olay hub'ından okumak için olay hub'ları tetikleyicisini ve olayları kaldırdıktan ve dönüştürdükten sonra bir olay hub'ına yazmak için çıkış bağlamasını kullanarak:
[FunctionName("ProcessorFunction")]
public static async Task Run(
[EventHubTrigger(
"%Input_EH_Name%",
Connection = "InputEventHubConnectionString",
ConsumerGroup = "%Input_EH_ConsumerGroup%")] EventData[] inputMessages,
[EventHub(
"%Output_EH_Name%",
Connection = "OutputEventHubConnectionString")] 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);
}
- Sanal ağ tümleştirmesi kullanarak Service Bus tetikleyicisi
- Azure Event Hubs, İşlevler 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, Kafka tetikleyicisi ile İşlevler ve Cosmos DB ile Azure Event Hubs ile 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, veri işlemenin yanı sıra modellerin çıkarımlarını yapmak için de kullanılabilir. Azure OpenAI bağlama uzantısı, Azure OpenAI hizmetinin özelliklerini ve davranışlarını işlev kodu yürütmelerinizle kolayca tümleştirmenizi sağlar.
İşlevler, metin ve sohbet tamamlamalarını etkinleştirmek, yardımcıları kullanmak ve eklemeler ile anlamsal aramadan yararlanmak için OpenAI kaynaklarına bağlanabilir.
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.
- Öğretici: Azure OpenAI kullanarak metin tamamlama
- Örnek: Çeşitli OpenAI özelliklerini kullanarak metin dosyalarını karşıya yükleme ve verilere erişme
- Örnek: AI Bilişsel Dil Hizmeti'ni kullanarak metin özetleme
- Örnek: Azure OpenAI kullanarak metin tamamlama
- Örnek: Modelinize yardımcı becerileri sağlama
- Örnek: Eklemeler oluşturma
- Örnek: Anlamsal aramadan yararlanma
- Öğretici: Azure OpenAI kullanarak metin tamamlama
- Örnek: Azure OpenAI kullanarak metin tamamlama
- Örnek: Modelinize yardımcı becerileri sağlama
- Örnek: Eklemeler oluşturma
- Örnek: Anlamsal aramadan yararlanma
- Öğretici: Azure OpenAI kullanarak metin tamamlama
- Öğretici: Python ve TensorFlow ile Azure İşlevleri makine öğrenmesi modellerini uygulama
- Öğretici: PyTorch ile Azure İşlevleri için önceden eğitilmiş görüntü sınıflandırma modeli dağıtma
- Örnek: Azure OpenAI kullanarak metin tamamlama
- Örnek: Modelinize yardımcı becerileri sağlama
- Örnek: Eklemeler oluşturma
- Örnek: Anlamsal aramadan yararlanma
- Örnek: ChatGPT kullanarak sohbet
- Örnek: Azure OpenAI ve ChatGPT ile LangChain
- Öğretici: Azure OpenAI kullanarak metin tamamlama
- Örnek: Azure OpenAI kullanarak metin tamamlama
- Örnek: Modelinize yardımcı becerileri sağlama
- Örnek: Eklemeler oluşturma
- Örnek: Anlamsal aramadan yararlanma
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.
Azure portalında zamanlamaya göre çalışan bir işlev oluşturma işlemine göz atın.
Örneğin bir finansal hizmetler müşteri veritabanı, aynı müşteriyle birden çok iletişimin oluşmasını önlemek için 15 dakikada bir yinelenen girişler için analiz edilebilir.
[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 web kancaları gibi bir web kancası tümleştirmesi olarak HTTP ile tetiklenen işlev uç noktasını da kullanabilirsiniz. Bu şekilde GitHub olaylarından verileri işleyen işlevler oluşturabilirsiniz. Daha fazla bilgi edinmek için bkz. Azure İşlevleri ile web kancası kullanarak GitHub olaylarını izleme.
Örnekler için aşağıdakilere 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();
}
- 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ı
- HTTP tetikleyicisi Azure İşlevleri
Sunucusuz iş akışı oluşturma
İşlevler genellikle Logic Apps iş akışı gibi sunucusuz bir iş akışı topolojisindeki işlem bileşenidir. 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ış.
- Hızlı Başlangıç: Java kullanarak Azure'da ilk dayanıklı işlevinizi oluşturma
- Hızlı Başlangıç: PowerShell kullanarak Azure'da ilk dayanıklı işlevinizi oluşturma
Veritabanı değişikliklerine yanıt verme
Depolanan veriler değiştiğinde günlüğe kaydetmeniz, denetlemeniz veya başka işlemler gerçekleştirmeniz gerekebilecek işlemler vardır. İş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.
Aşağıdaki örnekleri değerlendirin:
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.
Aşağıdaki makalede, bir depolama kuyruğuna çıkış yazma işlemi gösterilmektedir.
Bu makaleler, Azure Service Bus kuyruğundan veya konu başlığından nasıl tetikleyeceğini gösterir.