Azure Functions-Trigger für die Aufwärmphase

Dieser Artikel erläutert das Arbeiten mit dem Trigger für die Aufwärmphase in Azure Functions. Wenn eine Instanz hinzugefügt wird, um eine Funktions-App zu skalieren, wird ein Trigger für die Aufwärmphase aufgerufen. Mit dem Trigger für die Aufwärmphase können Sie eine Funktion definieren, die ausgeführt wird, wenn eine neue Instanz Ihrer Funktions-App gestartet wird. Ein Trigger für die Aufwärmphase kann verwendet werden, um benutzerdefinierte Abhängigkeiten vorab zu laden, damit Ihre Funktionen sofort mit der Verarbeitung von Anforderungen beginnen können. Mit einem Trigger für die Aufwärmphase können unter anderem Aktionen wie das Öffnen von Verbindungen, das Laden von Abhängigkeiten und das Ausführen anderer benutzerdefinierter Logik ausgeführt werden, bevor Ihre App Datenverkehr empfängt.

Berücksichtigen Sie bei der Verwendung eines Triggers für die Aufwärmphase Folgendes:

  • Der Trigger für die Aufwärmphase ist für Apps im Verbrauchsplan nicht verfügbar.
  • Der Trigger für die Aufwärmphase wird in Version 1.x der Functions-Runtime nicht unterstützt.
  • Der Trigger für die Aufwärmphase wird standardmäßig in allen Entwicklungsumgebungen unterstützt. Sie müssen das Paket nicht manuell installieren oder die Erweiterung registrieren.
  • Pro Funktions-App kann immer nur eine einzelne Triggerfunktion für die Aufwärmphase vorhanden sein, und sie kann nicht aufgerufen werden, wenn die Instanz bereits ausgeführt wird.
  • Der Trigger für die Aufwärmphase wird nur während der horizontalen Skalierung aufgerufen und nicht bei Neustarts oder anderen nicht skalierbaren Starts. Stellen Sie sicher, dass Ihre Logik alle erforderlichen Abhängigkeiten auch ohne den Trigger für die Aufwärmphase laden kann. Lazy Loading ist hierfür ein gutes Muster.
  • Durch den Trigger für die Aufwärmphase erstellte Abhängigkeiten sollten für andere Funktionen in Ihrer App freigegeben werden. Weitere Informationen finden Sie unter Statische Clients.
  • Wenn die integrierte Authentifizierung (auch als Easy Auth bezeichnet) verwendet wird, sollte Nur HTTPS aktiviert werden, damit der Aufwärmtrigger aufgerufen wird.

Beispiel

Eine C#-Funktion kann mit einem der folgenden C#-Modi erstellt werden:

  • Isoliertes Workermodell: Kompilierte C#-Funktion, die in einem Workerprozess ausgeführt wird, der von der Runtime isoliert ist. Ein isolierter Workerprozess ist erforderlich, um C#-Funktionen zu unterstützen, die in LTS- und Nicht-LTS-Versionen von .NET und .NET Framework ausgeführt werden.
  • In-Process-Modell: Kompilierte C#-Funktion, die im gleichen Prozess wie die Functions-Runtime ausgeführt wird.
  • C#-Skript: Wird hauptsächlich beim Erstellen von C#-Funktionen im Azure-Portal verwendet.

Wichtig

Die Unterstützung für das In-Process-Modell endet am 10. November 2026. Es wird dringend empfohlen, Ihre Apps zum isolierten Workermodell zu migrieren, um den vollständigen Support zu ermöglichen.

Das folgende Beispiel zeigt eine C#-Funktion, die für jede neue Instanz ausgeführt wird, wenn sie Ihrer App hinzugefügt wird.

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!");
        }
    }
}

Das folgende Beispiel zeigt einen Aufwärmtrigger, der immer ausgeführt wird, wenn Ihrer App eine neue Instanz hinzugefügt wird.

@FunctionName("Warmup")
public void warmup( @WarmupTrigger Object warmupContext, ExecutionContext context) {
    context.getLogger().info("Function App instance is warm.");
}

Das folgende Beispiel zeigt eine JavaScript-Funktion mit einem Warmuptrigger, der bei jeder neuen Instanz ausgeführt wird, wenn sie ihrer App hinzugefügt wird:

const { app } = require('@azure/functions');

app.warmup('warmupTrigger1', {
    handler: (warmupContext, context) => {
        context.log('Function App instance is warm.');
    },
});

Das folgende Beispiel zeigt eine TypeScript-Funktion mit einem Warmuptrigger, der bei jeder neuen Instanz ausgeführt wird, wenn sie ihrer App hinzugefügt wird:

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,
});

Die Datei function.json sieht wie folgt aus:

{
    "bindings": [
        {
            "type": "warmupTrigger",
            "direction": "in",
            "name": "warmupContext"
        }
    ]
}

PowerShell-Beispielcode wird nachgereicht.

Das folgende Beispiel zeigt einen Trigger für die Aufwärmphase in einer Datei vom Typ function.json und eine Python-Funktion, die für jede neue Instanz ausgeführt wird, wenn sie Ihrer App hinzugefügt wird:

Ihre Funktion muss warmup (ohne Berücksichtigung der Groß-/Kleinschreibung) heißen. Außerdem darf pro App nur eine Aufwärmfunktion vorhanden sein.

Die Datei function.json sieht wie folgt aus:

{
    "bindings": [
        {
            "type": "warmupTrigger",
            "direction": "in",
            "name": "warmupContext"
        }
    ]
}

Weitere Informationen finden Sie unter Konfiguration.

Dies ist der Python-Code:

import logging
import azure.functions as func


def main(warmupContext: func.Context) -> None:
    logging.info('Function App instance is warm.')

Attributes

Von C#-Bibliotheken des Typs prozessintern und isolierter Workerprozess wird das Attribut WarmupTrigger verwendet, um die Funktion zu definieren. Vom C#-Skript wird stattdessen die Konfigurationsdatei function.json verwendet.

Verwenden Sie das Attribut WarmupTrigger, zum Definieren der Funktion. Dieses Attribut hat keine Parameter.

Anmerkungen

Für Trigger für die Aufwärmphase sind keine Anmerkungen erforderlich. Verwenden Sie einfach den Namen warmup für die Anmerkung FunctionName. (Die Groß-/Kleinschreibung spielt hierbei keine Rolle.)

Konfiguration

Es gibt keine Eigenschaften, die für das an die app.warmup()-Methode übergebene options-Objekt festgelegt werden müssen.

Konfiguration

Die folgende Tabelle gibt Aufschluss über die Bindungskonfigurationseigenschaften, die Sie in der Datei function.json festlegen.

function.json-Eigenschaft BESCHREIBUNG
type Erforderlich – muss auf warmupTrigger festgelegt sein.
direction Erforderlich – muss auf in festgelegt sein.
name Erforderlich – der Variablenname, der im Funktionscode verwendet wird Für den Bindungsparameter wird als Name (name) der Wert warmupContext empfohlen.

Vollständige Beispiele finden Sie im Abschnitt „Beispiele“.

Verwendung

Berücksichtigen Sie bei der Verwendung einer Aufwärmfunktion in C# Folgendes:

  • Ihre Funktion muss über das Attribut Function mit dem Namen warmup versehen werden. (Die Groß-/Kleinschreibung spielt hierbei keine Rolle.)
  • Ein Attribut des Rückgabewerts ist nicht erforderlich.
  • Verwenden des Pakets Microsoft.Azure.Functions.Worker.Extensions.Warmup
  • Sie können eine Objektinstanz an die Funktion übergeben.

Ihre Funktion muss über die Anmerkung FunctionName mit dem Namen warmup versehen werden. (Die Groß-/Kleinschreibung spielt hierbei keine Rolle.)

Allgemeine Hinweise zur Verwendung finden Sie in der Liste der Überlegungen oben auf der Seite.

Der Funktionstyp in „function.json“ muss auf warmupTrigger festgelegt werden.

Nächste Schritte