Azure Functions-opwarmtrigger
In dit artikel wordt uitgelegd hoe u kunt werken met de opwarmtrigger in Azure Functions. Er wordt een opwarmtrigger aangeroepen wanneer een exemplaar wordt toegevoegd om een actieve functie-app te schalen. Met de opwarmtrigger kunt u een functie definiëren die wordt uitgevoerd wanneer een nieuw exemplaar van uw functie-app wordt gestart. U kunt een opwarmtrigger gebruiken om aangepaste afhankelijkheden vooraf te laden, zodat uw functies klaar zijn om aanvragen onmiddellijk te verwerken. Sommige acties voor een opwarmtrigger kunnen bestaan uit het openen van verbindingen, het laden van afhankelijkheden of het uitvoeren van andere aangepaste logica voordat uw app verkeer ontvangt.
De volgende overwegingen zijn van toepassing bij het gebruik van een opwarmtrigger:
- De opwarmtrigger is niet beschikbaar voor apps die worden uitgevoerd in het verbruiksabonnement.
- De opwarmtrigger wordt niet ondersteund op versie 1.x van de Functions-runtime.
- Ondersteuning voor de opwarmtrigger wordt standaard geboden in alle ontwikkelomgevingen. U hoeft het pakket niet handmatig te installeren of de uitbreiding te registreren.
- Er kan slechts één opwarm-triggerfunctie per functie-app zijn en deze kan niet worden aangeroepen nadat het exemplaar al wordt uitgevoerd.
- De opwarmtrigger wordt alleen aangeroepen tijdens uitschaalbewerkingen, niet tijdens herstarts of andere start-ups zonder schaalaanpassing. Zorg ervoor dat uw logica alle vereiste afhankelijkheden kan laden zonder afhankelijk te zijn van de opwarmtrigger. Lui laden is een goed patroon om dit doel te bereiken.
- Afhankelijkheden die zijn gemaakt door een opwarmtrigger, moeten worden gedeeld met andere functies in uw app. Zie Statische clients voor meer informatie.
- Als de ingebouwde verificatie (ook wel Easy Auth genoemd) wordt gebruikt, moet HTTPS alleen worden ingeschakeld voor de opwarmtrigger om aan te roepen.
Opmerking
U kunt een C#-functie maken met behulp van een van de volgende C#-modi:
- Geïsoleerd werkrolmodel: gecompileerde C#-functie die wordt uitgevoerd in een werkproces dat is geïsoleerd van de runtime. Geïsoleerd werkproces is vereist voor de ondersteuning van C#-functies die worden uitgevoerd op LTS- en niet-LTS-versies .NET en .NET Framework.
- In-process model: gecompileerde C#-functie die wordt uitgevoerd in hetzelfde proces als de Functions-runtime.
- C#-script: wordt voornamelijk gebruikt wanneer u C#-functies maakt in Azure Portal.
Belangrijk
De ondersteuning wordt beëindigd voor het in-process model op 10 november 2026. We raden u ten zeerste aan uw apps te migreren naar het geïsoleerde werkrolmodel voor volledige ondersteuning.
In het volgende voorbeeld ziet u een C#-functie die wordt uitgevoerd op elk nieuw exemplaar wanneer deze wordt toegevoegd aan uw 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!");
}
}
}
In het volgende voorbeeld ziet u een opwarmtrigger die wordt uitgevoerd wanneer elk nieuw exemplaar wordt toegevoegd aan uw app.
@FunctionName("Warmup")
public void warmup( @WarmupTrigger Object warmupContext, ExecutionContext context) {
context.getLogger().info("Function App instance is warm.");
}
In het volgende voorbeeld ziet u een JavaScript-functie met een opwarmtrigger die wordt uitgevoerd op elk nieuw exemplaar wanneer deze wordt toegevoegd aan uw app:
const { app } = require('@azure/functions');
app.warmup('warmupTrigger', {
handler: (warmupContext, context) => {
context.log('Function App instance is warm.');
},
});
In het volgende voorbeeld ziet u een TypeScript-functie met een opwarmtrigger die wordt uitgevoerd op elk nieuw exemplaar wanneer deze wordt toegevoegd aan uw 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,
});
Dit is het bestand function.json :
{
"bindings": [
{
"type": "warmupTrigger",
"direction": "in",
"name": "warmupContext"
}
]
}
PowerShell-voorbeeldcode in behandeling.
In het volgende voorbeeld ziet u een opwarmtrigger in een function.json-bestand en een Python-functie die wordt uitgevoerd op elk nieuw exemplaar wanneer deze wordt toegevoegd aan uw app.
Uw functie moet een naam warmup
hebben (hoofdlettergevoelig) en er kan slechts één opwarmfunctie per app zijn.
Dit is het bestand function.json :
{
"bindings": [
{
"type": "warmupTrigger",
"direction": "in",
"name": "warmupContext"
}
]
}
Zie Configuratie voor meer informatie.
Dit is de Python-code:
import logging
import azure.functions as func
def main(warmupContext: func.Context) -> None:
logging.info('Function App instance is warm.')
Kenmerken
Zowel in-process als geïsoleerde werkproces C#-bibliotheken gebruiken het WarmupTrigger
kenmerk om de functie te definiëren. C#-script maakt in plaats daarvan gebruik van een function.json configuratiebestand.
Gebruik het WarmupTrigger
kenmerk om de functie te definiëren. Dit kenmerk heeft geen parameters.
Aantekeningen
Voor opwarmtriggers zijn geen aantekeningen vereist. Gebruik een naam van warmup
(hoofdlettergevoelig) voor de FunctionName
aantekening.
Configuratie
Configuratie
In de volgende tabel worden de bindingsconfiguratie-eigenschappen uitgelegd die u in het function.json-bestand hebt ingesteld.
function.json-eigenschap | Beschrijving |
---|---|
type | Vereist - moet worden ingesteld op warmupTrigger . |
direction | Vereist - moet worden ingesteld op in . |
name | Vereist: de naam van de variabele die wordt gebruikt in functiecode. Een name van warmupContext wordt aanbevolen voor de bindingsparameter. |
Zie de sectie Voorbeeld voor volledige voorbeelden.
Gebruik
De volgende overwegingen zijn van toepassing op het gebruik van een opwarmfunctie in C#:
- Uw functie moet een naam
warmup
hebben (hoofdlettergevoelig) met behulp van hetFunction
kenmerk. - Er is geen kenmerk voor een retourwaarde vereist.
Microsoft.Azure.Functions.Worker.Extensions.Warmup
Het pakket gebruiken- U kunt een objectexemplaren doorgeven aan de functie.
Uw functie moet een naam warmup
hebben (hoofdlettergevoelig) met behulp van de FunctionName
aantekening.
Het functietype in function.json moet worden ingesteld op warmupTrigger
.