Az Azure Functions bemelegítési eseményindítója
Ez a cikk azt ismerteti, hogyan használható a bemelegítési eseményindító az Azure Functionsben. A rendszer bemelegítési eseményindítót hív meg, amikor hozzáad egy példányt egy futó függvényalkalmazás skálázásához. A bemelegítési eseményindítóval definiálhat egy függvényt, amely a függvényalkalmazás új példányának indításakor fut. Bemelegítési eseményindítóval előre betöltheti az egyéni függőségeket, így a függvények azonnal megkezdhetik a kérések feldolgozását. A bemelegítési eseményindító egyes műveletei közé tartozhatnak a kapcsolatok megnyitása, a függőségek betöltése vagy bármely más egyéni logika futtatása, mielőtt az alkalmazás megkezdené a forgalom fogadását.
Bemelegítési eseményindító használatakor a következő szempontok érvényesek:
- Függvényalkalmazásonként csak egy bemelegítési eseményindító függvény lehet, és a példány futtatása után nem hívható meg.
- Annak a függvénynek a neve, amely az alkalmazás
warmup
bemelegítési eseményindítója (kis- és nagybetűk megkülönböztetése). - A bemelegítési eseményindító nem érhető el a Használat csomagban futó alkalmazások számára.
- A bemelegítési eseményindító nem támogatott a Functions-futtatókörnyezet 1.x verziójában.
- A bemelegítési eseményindító támogatása alapértelmezés szerint minden fejlesztési környezetben biztosított. Nem kell manuálisan telepítenie a csomagot, és nem kell regisztrálnia a bővítményt.
- A bemelegítési eseményindító csak a vertikális felskálázási műveletek során van meghívva, újraindítások vagy más nem skálázási indítások során nem. Győződjön meg arról, hogy a logika az összes szükséges függőséget betölti anélkül, hogy a bemelegítési eseményindítóra támaszkodik. A lusta betöltés jó minta ennek a célnak a eléréséhez.
- A bemelegítési eseményindító által létrehozott függőségeket meg kell osztani az alkalmazás más funkcióival. További információ: Statikus ügyfelek.
- Ha a beépített hitelesítést (más néven Egyszerű hitelesítést) használják, a bemelegítési eseményindító meghívásához csak HTTPS-t kell engedélyezni.
Példa
A C#-függvények a következő C#-módok egyikével hozhatók létre:
- Izolált feldolgozómodell: Lefordított C# függvény, amely a futtatókörnyezettől elkülönített feldolgozói folyamatban fut. Izolált feldolgozói folyamat szükséges az LTS- és nem LTS-verziókon futó C#-függvények támogatásához .NET és .NET-keretrendszer.
- Folyamaton belüli modell: Lefordított C# függvény, amely ugyanabban a folyamatban fut, mint a Functions-futtatókörnyezet.
- C#-szkript: Elsősorban C#-függvények Azure Portalon való létrehozásakor használatos.
Fontos
A folyamaton belüli modell támogatása 2026. november 10-én megszűnik. Erősen javasoljuk, hogy az alkalmazásokat az elkülönített feldolgozói modellbe migrálja a teljes támogatás érdekében.
Az alábbi példa egy C# függvényt mutat be, amely minden új példányon fut, amikor hozzáadja az alkalmazáshoz.
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!");
}
}
}
Az alábbi példa egy bemelegítési eseményindítót mutat be, amely minden új példány alkalmazáshoz való hozzáadásakor fut.
@FunctionName("Warmup")
public void warmup( @WarmupTrigger Object warmupContext, ExecutionContext context) {
context.getLogger().info("Function App instance is warm.");
}
Az alábbi példa egy JavaScript-függvényt mutat bemelegítési eseményindítóval, amely minden új példányon fut, amikor hozzáadódik az alkalmazáshoz:
const { app } = require('@azure/functions');
app.warmup('warmupTrigger', {
handler: (warmupContext, context) => {
context.log('Function App instance is warm.');
},
});
Az alábbi példa egy TypeScript-függvényt mutat be, amely egy bemelegítési eseményindítóval rendelkezik, amely minden új példányon fut, amikor hozzáadja az alkalmazást:
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,
});
Íme a function.json fájl:
{
"bindings": [
{
"type": "warmupTrigger",
"direction": "in",
"name": "warmupContext"
}
]
}
PowerShell-példakód függőben.
Az alábbi példa egy bemelegítési eseményindítót mutat be egy function.json fájlban és egy Python-függvényt , amely minden új példányon fut, amikor hozzáadja az alkalmazáshoz.
A függvényt el kell nevezni warmup
(kis- és nagybetűk nem érzékenek), és alkalmazásonként csak egy bemelegítési függvény lehet.
Íme a function.json fájl:
{
"bindings": [
{
"type": "warmupTrigger",
"direction": "in",
"name": "warmupContext"
}
]
}
További információ: Konfiguráció.
A Python-kód a következő:
import logging
import azure.functions as func
def main(warmupContext: func.Context) -> None:
logging.info('Function App instance is warm.')
Attribútumok
A függvény definiálásához a folyamaton belüli és az izolált feldolgozói folyamat C# kódtárai is az WarmupTrigger
attribútumot használják. A C#-szkript ehelyett function.json konfigurációs fájlt használ.
A függvény definiálásához használja az WarmupTrigger
attribútumot. Ez az attribútum nem rendelkezik paraméterekkel.
Jegyzetek
A bemelegítési eseményindítókhoz nincs szükség széljegyzetekre. A széljegyzethez csak a kis- és nagybetűket érzékelyítő FunctionName
nevet warmup
kell használnia.
Konfiguráció
Konfiguráció
Az alábbi táblázat a function.json fájlban beállított kötéskonfigurációs tulajdonságokat ismerteti.
function.json tulajdonság | Leírás |
---|---|
type | Kötelező – a beállításnak warmupTrigger a következőnek kell lennie: . |
direction | Kötelező – a beállításnak in a következőnek kell lennie: . |
név | Kötelező – a függvénykódban használt változónév. A kötési paraméterhez a "A name " warmupContext paraméter használata javasolt. |
A teljes példákért tekintse meg a Példa szakaszt .
Használat
A C# bemelegítési függvényének használatára az alábbi szempontok vonatkoznak:
- A függvényt el kell nevezni
warmup
(kis- és nagybetűk megkülönböztetése) azFunction
attribútum használatával. - Nincs szükség visszatérési érték attribútumra.
-
Microsoft.Azure.Functions.Worker.Extensions.Warmup
A csomag használata - Átadhat egy objektumpéldányt a függvénynek.
A függvényt el kell nevezni warmup
(kis- és nagybetűk megkülönböztetése) a FunctionName
széljegyzet használatával.
A function.json függvénytípusának a következőre kell állítania: warmupTrigger
.