Megosztás a következőn keresztül:


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.

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ó

  • A függvény-eseményindítót el kell nevezni warmupTrigger (a kis- és nagybetűk nem érzékenek).
  • Nincsenek olyan tulajdonságok, amelyeket be kell állítani a options metódusnak átadott objektumon app.warmup() .

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 warmupTriggera következőnek kell lennie: .
direction Kötelező – a beállításnak ina 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) az Function 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.

Általános használati tanácsért tekintse meg az oldal tetején található szempontok listáját.

A function.json függvénytípusának a következőre kell állítania: warmupTrigger.

Következő lépések