Azure Functions-uppvärmningsutlösare
Den här artikeln beskriver hur du arbetar med uppvärmningsutlösaren i Azure Functions. En uppvärmningsutlösare anropas när en instans läggs till för att skala en funktionsapp som körs. Med uppvärmningsutlösaren kan du definiera en funktion som körs när en ny instans av funktionsappen startas. Du kan använda en uppvärmningsutlösare för att förinstallera anpassade beroenden så att dina funktioner är redo att börja bearbeta begäranden omedelbart. Vissa åtgärder för en uppvärmningsutlösare kan vara att öppna anslutningar, läsa in beroenden eller köra annan anpassad logik innan appen börjar ta emot trafik.
Följande överväganden gäller när du använder en uppvärmningsutlösare:
- Uppvärmningsutlösaren är inte tillgänglig för appar som körs i förbrukningsplanen.
- Uppvärmningsutlösaren stöds inte på version 1.x av Functions-körningen.
- Stöd för uppvärmningsutlösaren tillhandahålls som standard i alla utvecklingsmiljöer. Du behöver inte installera paketet manuellt eller registrera tillägget.
- Det kan bara finnas en funktion för uppvärmningsutlösare per funktionsapp och den kan inte anropas när instansen redan har körts.
- Uppvärmningsutlösaren anropas endast under utskalningsåtgärder, inte under omstarter eller andra icke-skalningsstarter. Kontrollera att logiken kan läsa in alla nödvändiga beroenden utan att behöva använda uppvärmningsutlösaren. Lazy loading är ett bra mönster för att uppnå det här målet.
- Beroenden som skapas av en uppvärmningsutlösare ska delas med andra funktioner i din app. Mer information finns i Statiska klienter.
- Om den inbyggda autentiseringen (även kallad Easy Auth) används bör ENDAST HTTPS aktiveras för att uppvärmningsutlösaren ska anropas.
Exempel
En C#-funktion kan skapas med något av följande C#-lägen:
- Isolerad arbetsmodell: Kompilerad C#-funktion som körs i en arbetsprocess som är isolerad från körningen. Isolerad arbetsprocess krävs för att stödja C#-funktioner som körs på LTS- och icke-LTS-versioner .NET och .NET Framework.
- Processmodell: Kompilerad C#-funktion som körs i samma process som Functions-körningen.
- C#-skript: Används främst när du skapar C#-funktioner i Azure-portalen.
Viktigt!
Supporten upphör för den pågående modellen den 10 november 2026. Vi rekommenderar starkt att du migrerar dina appar till den isolerade arbetsmodellen för fullt stöd.
I följande exempel visas en C#-funktion som körs på varje ny instans när den läggs till i din app.
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!");
}
}
}
I följande exempel visas en uppvärmningsutlösare som körs när varje ny instans läggs till i din app.
@FunctionName("Warmup")
public void warmup( @WarmupTrigger Object warmupContext, ExecutionContext context) {
context.getLogger().info("Function App instance is warm.");
}
I följande exempel visas en JavaScript-funktion med en uppvärmningsutlösare som körs på varje ny instans när den läggs till i din app:
const { app } = require('@azure/functions');
app.warmup('warmupTrigger1', {
handler: (warmupContext, context) => {
context.log('Function App instance is warm.');
},
});
I följande exempel visas en TypeScript-funktion med en uppvärmningsutlösare som körs på varje ny instans när den läggs till i din app:
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,
});
Här är den function.json filen:
{
"bindings": [
{
"type": "warmupTrigger",
"direction": "in",
"name": "warmupContext"
}
]
}
PowerShell-exempelkod väntar.
I följande exempel visas en uppvärmningsutlösare i en function.json-fil och en Python-funktion som körs på varje ny instans när den läggs till i din app.
Funktionen måste ha namnet warmup
(skiftlägesokänslig) och det kan bara finnas en uppvärmningsfunktion per app.
Här är den function.json filen:
{
"bindings": [
{
"type": "warmupTrigger",
"direction": "in",
"name": "warmupContext"
}
]
}
Mer information finns i Konfiguration.
Här är Python-koden:
import logging
import azure.functions as func
def main(warmupContext: func.Context) -> None:
logging.info('Function App instance is warm.')
Attribut
C#-bibliotek för både process- och isolerad arbetsprocess använder attributet för att definiera WarmupTrigger
funktionen. C#-skriptet använder i stället en function.json konfigurationsfil.
Använd attributet WarmupTrigger
för att definiera funktionen. Det här attributet har inga parametrar.
Kommentarer
Uppvärmningsutlösare kräver inte anteckningar. Använd bara namnet warmup
(skiftlägesokänsligt) för anteckningen FunctionName
.
Konfiguration
Konfiguration
I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i filen function.json .
function.json egenskap | beskrivning |
---|---|
typ | Obligatoriskt – måste anges till warmupTrigger . |
riktning | Obligatoriskt – måste anges till in . |
Namn | Obligatoriskt – variabelnamnet som används i funktionskoden. En name av warmupContext rekommenderas för bindningsparametern. |
Se avsnittet Exempel för fullständiga exempel.
Användning
Följande överväganden gäller för användning av en uppvärmningsfunktion i C#:
- Funktionen måste namnges
warmup
(skiftlägesokänslig) med hjälp av attributetFunction
. - Ett returvärdesattribut krävs inte.
Microsoft.Azure.Functions.Worker.Extensions.Warmup
Använda paketet- Du kan skicka en objektinstans till funktionen.
Funktionen måste namnges warmup
(skiftlägesokänslig) med anteckningen FunctionName
.
Funktionstypen i function.json måste vara inställd på warmupTrigger
.