Déclencheur de préchauffage Azure Functions

Cet article explique comment utiliser le déclencheur de préchauffage dans Azure Functions. Un déclencheur de préchauffage est appelé lorsqu’une instance est ajoutée pour mettre à l’échelle une application de fonction en cours d’exécution. Le déclencheur de préchauffage vous permet de définir une fonction qui s’exécute lorsqu’une nouvelle instance de votre application de fonction est lancée. Vous pouvez utiliser un déclencheur de préchauffage pour précharger des dépendances personnalisées afin que vos fonctions soient prêtes à commencer le traitement des requêtes immédiatement. Les actions d’un déclencheur de préchauffage peuvent inclure l’ouverture de connexions, le chargement de dépendances ou l’exécution de toute autre logique personnalisée avant que votre application commence à recevoir du trafic.

Les considérations suivantes s’appliquent lors de l’utilisation d’un déclencheur de préchauffage :

  • Le déclencheur de préchauffage n’est pas disponible pour les applications qui s’exécutent dans le cadre d’un plan Consommation.
  • Le déclencheur de préchauffage n’est pas pris en charge sur la version 1.x du runtime Functions.
  • La prise en charge du déclencheur de préchauffage est assurée par défaut dans tous les environnements de développement. Vous n’avez pas besoin d’installer manuellement le package ou d’enregistrer l’extension.
  • Il ne peut y avoir qu’une seule fonction de déclencheur de préchauffage par application, et elle ne peut pas être appelée lorsque l’instance est déjà en cours d’exécution.
  • Le déclencheur de préchauffage est uniquement appelé pendant les opérations de scale-out, et non lors des redémarrages ou d’autres démarrages sans mise à l’échelle. Assurez-vous que votre logique peut charger toutes les dépendances requises sans dépendre du déclencheur de préchauffage. Le chargement différé est un bon modèle pour atteindre cet objectif.
  • Les dépendances créées par le déclencheur de préchauffage doivent être partagées avec d’autres fonctions de votre application. Pour plus d’informations, consultez Clients statiques.
  • Si l’authentification intégrée (également appelée Easy Auth) est utilisée, l’option HTTPS uniquement doit être activée pour que le déclencheur de préchauffage soit appelé.

Exemple

Une fonction C# peut être créée à l’aide de l’un des modes C# suivants :

  • Modèle worker isolé : fonction C# compilée exécutée dans un processus worker isolé du runtime. Le processus Worker isolé est requis pour prendre en charge les fonctions C# exécutées sur les versions LTS et non-LTS de .NET et de .NET Framework.
  • Modèle In-process : fonction C# compilée exécutée dans le même processus que le runtime Functions.
  • Script C# : principalement utilisé lors de la création de fonctions C# dans le portail Azure.

Important

Le support prendra fin pour le modèle in-process le 10 novembre 2026. Nous vous recommandons vivement de migrer vos applications vers le modèle worker isolé pour une prise en charge complète.

L’exemple suivant présente une fonction C# qui s’exécute sur chaque nouvelle instance quand elle est ajoutée à votre application.

using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;

namespace SampleApp
{
    public static class Warmup
    {
        [Function(nameof(Warmup))]
        public static void Run([WarmupTrigger] object warmupContext, FunctionContext context)
        {
            var logger = context.GetLogger(nameof(Warmup));
            logger.LogInformation("Function App instance is now warm!");
        }
    }
}

L’exemple suivant montre un déclencheur de préchauffage qui s’exécute lors de l’ajout d’une nouvelle instance à votre application.

@FunctionName("Warmup")
public void warmup( @WarmupTrigger Object warmupContext, ExecutionContext context) {
    context.getLogger().info("Function App instance is warm.");
}

L’exemple suivant montre une fonction JavaScript avec un déclencheur de préchauffement qui s’exécute sur chaque nouvelle instance lorsqu’elle est ajoutée à votre application :

const { app } = require('@azure/functions');

app.warmup('warmupTrigger1', {
    handler: (warmupContext, context) => {
        context.log('Function App instance is warm.');
    },
});

L’exemple suivant montre une fonction TypeScript avec un déclencheur de préchauffement qui s’exécute sur chaque nouvelle instance lorsqu’elle est ajoutée à votre application :

import { app, InvocationContext, WarmupContext } from '@azure/functions';

export async function warmupFunction(warmupContext: WarmupContext, context: InvocationContext): Promise<void> {
    context.log('Function App instance is warm.');
}

app.warmup('warmup', {
    handler: warmupFunction,
});

Voici le fichier function.json :

{
    "bindings": [
        {
            "type": "warmupTrigger",
            "direction": "in",
            "name": "warmupContext"
        }
    ]
}

Exemple de code PowerShell en attente.

L’exemple suivant montre un déclencheur de préchauffage dans un fichier function.json et une fonction Python qui s’exécute sur chaque nouvelle instance quand elle est ajoutée à votre application.

Votre fonction doit être nommée warmup (non sensible à la casse), et il ne peut y avoir qu’une seule fonction de préchauffage par application.

Voici le fichier function.json :

{
    "bindings": [
        {
            "type": "warmupTrigger",
            "direction": "in",
            "name": "warmupContext"
        }
    ]
}

Pour plus d’informations, consultez Configuration.

Voici le code Python :

import logging
import azure.functions as func


def main(warmupContext: func.Context) -> None:
    logging.info('Function App instance is warm.')

Attributs

Les bibliothèques C# in-process et de processus Worker isolé utilisent l’attribut WarmupTrigger pour définir la fonction. Le script C# utilise à la place un fichier config function.json.

Utilisez l’attribut WarmupTrigger pour définir la fonction. Cet attribut n’a pas de paramètres.

Annotations

Les déclencheurs de préchauffage ne nécessitent pas d’annotations. Il suffit d’utiliser le nom warmup (sans respect de la casse) pour l’annotation FunctionName.

Configuration

Aucune propriété ne doit être définie sur l’objet options transmis à la méthode app.warmup().

Configuration

Le tableau suivant décrit les propriétés de configuration de liaison que vous définissez dans le fichier function.json.

Propriété function.json Description
type Obligatoire : doit être défini sur warmupTrigger.
direction Obligatoire : doit être défini sur in.
name Obligatoire : nom de variable utilisé dans le code de fonction. Il est recommandé de définir la propriété name sur warmupContext pour le paramètre de liaison.

Pour obtenir des exemples complets, consultez la section Exemple.

Utilisation

Les considérations suivantes s’appliquent à l’utilisation d’une fonction de préchauffage en C# :

  • Votre fonction doit être nommée warmup (insensible à la casse) à l’aide de l’attribut Function.
  • Aucun attribut de valeur renvoyée n’est requis.
  • Utiliser le package Microsoft.Azure.Functions.Worker.Extensions.Warmup
  • Vous pouvez transmettre une instance d’objet à la fonction.

Votre fonction doit être nommée warmup (sans respect de la casse) à l’aide de l’annotation FunctionName.

Consultez la liste des considérations en haut de la page pour obtenir des conseils d’utilisation généraux.

Le type de fonction dans function.json doit être défini sur warmupTrigger.

Étapes suivantes