Partager via


Scénarios Azure Functions

Souvent, vous créez des systèmes qui réagissent à une série d’événements critiques. Que vous générez une API web, que vous répondiez aux modifications de base de données, ou que vous traitez des flux d’événements ou des messages, vous pouvez utiliser Azure Functions pour implémenter ces systèmes.

Dans de nombreux cas, une fonction s’intègre à un tableau de services cloud pour fournir des implémentations riches en fonctionnalités. La liste suivante présente des scénarios courants (mais sans aucun moyen exhaustifs) pour Azure Functions.

Sélectionnez en haut de l'article votre langage de développement.

Traiter des chargements de fichiers

Vous pouvez utiliser des fonctions de plusieurs façons pour traiter des fichiers vers l'intérieur ou l'extérieur d’un conteneur de stockage Blob. Pour en savoir davantage sur les options de déclenchement d'un conteneur de blobs, consultez la section Travailler avec des blobs figurant dans la documentation sur les meilleures pratiques.

Par exemple, dans le cadre d’une solution de vente au détail, un système partenaire peut envoyer des informations de catalogue de produits sous forme de fichiers dans le stockage d’objets blob. Vous pouvez utiliser une fonction déclenchée par un objet blob pour valider, transformer et traiter les fichiers dans le système principal lorsque vous les chargez.

Diagramme d’un processus de chargement de fichier à l’aide d’Azure Functions.

Les tutoriels suivants utilisent un déclencheur Blob (basé sur la grille d’événements) pour traiter les fichiers dans un conteneur Blob :

Par exemple, utilisez le déclencheur blob avec un abonnement à un événement sur les conteneurs blob :

[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();
        }
    }
}

Traitement des flux et des événements en temps réel

Les applications cloud, les appareils IoT et les appareils réseau génèrent et collectent une grande quantité de données de télémétrie. Azure Functions peut traiter ces données en quasi temps réel comme chemin d’accès chaud, puis les stocker dans Azure Cosmos DB à utiliser dans un tableau de bord d’analyse.

Vos fonctions peuvent également utiliser des déclencheurs d’événements à faible latence, comme Azure Event Grid, et des sorties en temps réel comme SignalR pour traiter les données en quasi-temps réel.

Diagramme d’un processus de flux en temps réel à l’aide d’Azure Functions.

Par exemple, vous pouvez utiliser le déclencheur Event Hubs pour lire à partir d'un Event Hub et la liaison de sortie pour écrire dans un Event Hub après avoir débatché et transformé les événements :

[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);
}

Machine Learning et intelligence artificielle

Azure Functions fournit des ressources de calcul serverless qui s’intègrent à l’IA et aux services Azure pour simplifier la création d’applications intelligentes hébergées dans le cloud. Vous pouvez utiliser le modèle de programmation Functions pour créer et héberger des serveurs MCP (Remote Model Content Protocol) et implémenter différents outils IA. Pour plus d’informations, consultez Outils et serveurs MCP.

L’extension de liaison Azure OpenAI vous permet d’intégrer des fonctionnalités et des comportements IA du service Azure OpenAI, tels que la génération d’extraction augmentée (RAG), dans vos exécutions de code de fonction. Pour plus d'informations, voir Génération augmentée par la récupération.

Une fonction peut également appeler un modèle TensorFlow ou des services Azure AI pour traiter et classifier un flux d’images.

Diagramme d’un processus Machine Learning et IA à l’aide d’Azure Functions.

Pour plus d’informations, consultez Utiliser des outils et des modèles IA dans Azure Functions.

Exécuter des tâches planifiées

Functions vous permet d’exécuter votre code selon une planification cron que vous définissez.

Consultez Créer une fonction dans le portail Azure qui s’exécute selon une planification.

Par exemple, vous pouvez analyser une base de données client des services financiers pour les entrées en double toutes les 15 minutes afin d’éviter que plusieurs communications sortent vers le même client.

Diagramme d’une tâche planifiée où une fonction nettoie une base de données toutes les 15 minutes en dédupliqué les entrées en fonction de la logique métier.

Pour obtenir des exemples, consultez ces extraits de code :

[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
}

Créer une API web évolutive

Une fonction déclenchée par HTTP définit un point de terminaison HTTP. Ces points de terminaison exécutent un code de fonction capable de se connecter à d'autres services directement ou à l'aide d'extensions de liaison. Vous pouvez composer les points de terminaison dans une API web.

Vous pouvez également utiliser un point de terminaison de fonction déclenché par HTTP comme intégration de webhook, comme des webhooks GitHub. De cette manière, vous pouvez créer des fonctions traitant des données à partir d’événements GitHub. Pour plus d’informations, consultez Surveiller les événements GitHub à l’aide d’un webhook avec Azure Functions.

Diagramme du traitement d’une requête HTTP à l’aide d’Azure Functions.

Pour obtenir des exemples, consultez ces extraits de code :

[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();
}

Générer un workflow serverless

Les fonctions servent souvent de composant de calcul dans une topologie de flux de travail serverless, comme un flux de travail Logic Apps. Vous pouvez également créer de longues orchestrations à l’aide de l’extension Durable Functions. Pour plus d’informations, consultez Aperçu de Durable Functions.

Diagramme combiné d’une série de flux de travail serverless spécifiques à l’aide d’Azure Functions.

Répondre à des modifications de base de données

Certains processus doivent journaliser, auditer ou effectuer d’autres opérations lors des modifications de données stockées. Les déclencheurs Functions fournissent un excellent moyen d’être averti des modifications de données pour initier une telle opération.

Diagramme d’une fonction utilisée pour répondre aux modifications de base de données.

Créer des systèmes de messages fiables

Functions avec les services de messagerie Azure permet de créer des solutions de messagerie avancées pilotées par les événements.

Par exemple, les déclencheurs sur les files d'attente du Stockage Microsoft Azure vous permettent d'enchaîner une série d'exécutions de fonctions. Vous pouvez également utiliser des files d’attente et des déclencheurs Service Bus pour un système de commande en ligne.

Diagramme d’Azure Functions dans un système de messages fiable.

Ces articles montrent comment écrire une sortie dans une file d’attente de stockage :

Ces articles montrent comment déclencher à partir d’une file d’attente ou d’une rubrique Azure Service Bus.

Étapes suivantes