Trigger pro přípravu služby Azure Functions
Tento článek vysvětluje, jak pracovat s triggerem warmup ve službě Azure Functions. Aktivační událost warmup se vyvolá při přidání instance pro škálování spuštěné aplikace funkcí. Trigger warmup umožňuje definovat funkci, která se spustí při spuštění nové instance vaší aplikace funkcí. Trigger pro přípravu můžete použít k předběžnému načtení vlastních závislostí, aby vaše funkce byly připraveny okamžitě začít zpracovávat požadavky. Některé akce triggeru pro přípravu můžou zahrnovat otevírání připojení, načítání závislostí nebo spouštění jakékoli jiné vlastní logiky před tím, než vaše aplikace začne přijímat provoz.
Při použití triggeru warmup platí následující aspekty:
- Aktivační událost pro přípravu není dostupná pro aplikace spuštěné v plánu Consumption.
- Aktivační událost warmup není podporována ve verzi 1.x modulu runtime Služby Functions.
- Podpora triggeru pro přípravu je ve výchozím nastavení poskytována ve všech vývojových prostředích. Balíček nemusíte instalovat ručně ani registrovat rozšíření.
- Pro každou aplikaci funkcí může existovat jenom jedna funkce triggeru pro přípravu a po spuštění instance ji nelze vyvolat.
- Aktivační událost pro přípravu se volá pouze během operací horizontálního navýšení kapacity, ne během restartování nebo jiných nesvícených spuštění. Ujistěte se, že logika může načíst všechny požadované závislosti, aniž byste se museli spoléhat na aktivační událost pro přípravu. Opožděné načítání je dobrým vzorem pro dosažení tohoto cíle.
- Závislosti vytvořené triggerem warmup by se měly sdílet s dalšími funkcemi ve vaší aplikaci. Další informace najdete v tématu Statické klienty.
- Pokud se používá integrované ověřování (označované také jako Easy Auth), mělo by být povolené jenom https pro vyvolání triggeru pro přípravu.
Příklad
Funkci jazyka C# je možné vytvořit pomocí jednoho z následujících režimů jazyka C#:
- Izolovaný model pracovního procesu: Kompilovaná funkce jazyka C#, která běží v pracovním procesu, který je izolovaný od modulu runtime. Izolovaný pracovní proces je nutný pro podporu funkcí C# spuštěných na LTS a jiných verzích než LTS .NET a rozhraní .NET Framework.
- Model v procesu: Zkompilovaná funkce jazyka C#, která běží ve stejném procesu jako modul runtime služby Functions.
- Skript jazyka C#: Používá se především při vytváření funkcí jazyka C# na webu Azure Portal.
Důležité
Podpora modelu v procesu skončí 10. listopadu 2026. Důrazně doporučujeme migrovat aplikace do izolovaného modelu pracovního procesu pro plnou podporu.
Následující příklad ukazuje funkci jazyka C#, která se při přidání do aplikace spouští na každé nové instanci.
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!");
}
}
}
Následující příklad ukazuje aktivační událost pro přípravu, která se spustí při přidání každé nové instance do vaší aplikace.
@FunctionName("Warmup")
public void warmup( @WarmupTrigger Object warmupContext, ExecutionContext context) {
context.getLogger().info("Function App instance is warm.");
}
Následující příklad ukazuje funkci JavaScriptu s aktivační událostí pro přípravu, která se spustí v každé nové instanci při přidání do vaší aplikace:
const { app } = require('@azure/functions');
app.warmup('warmupTrigger', {
handler: (warmupContext, context) => {
context.log('Function App instance is warm.');
},
});
Následující příklad ukazuje funkci TypeScript s triggerem zahřátí, který se spustí na každé nové instanci při přidání do vaší aplikace:
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,
});
Tady je soubor function.json :
{
"bindings": [
{
"type": "warmupTrigger",
"direction": "in",
"name": "warmupContext"
}
]
}
Ukázkový kód PowerShellu čeká na vyřízení.
Následující příklad ukazuje trigger zahřátí v souboru function.json a funkci Pythonu, která se spouští na každé nové instanci, když se přidá do vaší aplikace.
Vaše funkce musí mít název warmup
(nerozlišující malá a velká písmena) a pro každou aplikaci může existovat jenom jedna funkce pro přípravu.
Tady je soubor function.json :
{
"bindings": [
{
"type": "warmupTrigger",
"direction": "in",
"name": "warmupContext"
}
]
}
Další informace najdete v tématu Konfigurace.
Tady je kód Pythonu:
import logging
import azure.functions as func
def main(warmupContext: func.Context) -> None:
logging.info('Function App instance is warm.')
Atributy
Knihovny C# v procesu i izolovaného pracovního procesu používají WarmupTrigger
atribut k definování funkce. Skript jazyka C# místo toho používá konfigurační soubor function.json.
Pomocí atributu WarmupTrigger
definujte funkci. Tento atribut nemá žádné parametry.
Poznámky
Aktivační události pro přípravu nevyžadují poznámky. Stačí pro poznámku FunctionName
použít název warmup
nerozlišující velká a malá písmena.
Konfigurace
Konfigurace
Následující tabulka vysvětluje vlastnosti konfigurace vazby, které jste nastavili v souboru function.json .
vlastnost function.json | Popis |
---|---|
type | Povinné – musí být nastaveno na warmupTrigger hodnotu . |
direction | Povinné – musí být nastaveno na in hodnotu . |
Jméno | Povinný argument – název proměnné použité v kódu funkce. warmupContext Parametr name vazby se doporučuje. |
Kompletní příklady najdete v části Příklad.
Využití
Pro použití funkce warmup v jazyce C#platí následující aspekty:
- Vaše funkce musí být pojmenovaná
warmup
(nerozlišují malá a velká písmena) pomocí atributuFunction
. - Atribut návratové hodnoty není povinný.
Microsoft.Azure.Functions.Worker.Extensions.Warmup
Použití balíčku- Do funkce můžete předat instanci objektu.
Vaše funkce musí být pojmenovaná warmup
(nerozlišují malá a velká písmena) pomocí poznámky FunctionName
.
Typ funkce v function.json musí být nastaven na warmupTrigger
hodnotu .