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
La prise en charge du modèle in-process prendra fin le 10 novembre 2026. Pour continuer à bénéficier d’une prise en charge complète, nous vous recommandons vivement de migrer vos applications vers le modèle Worker isolé.
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
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’attributFunction
. - 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
.
Le type de fonction dans function.json doit être défini sur warmupTrigger
.