Udostępnij za pośrednictwem


Wyzwalacz rozgrzewania usługi Azure Functions

W tym artykule wyjaśniono, jak pracować z wyzwalaczem rozgrzewki w usłudze Azure Functions. Wyzwalacz rozgrzewania jest wywoływany po dodaniu wystąpienia do skalowania uruchomionej aplikacji funkcji. Wyzwalacz rozgrzewki umożliwia zdefiniowanie funkcji uruchamianej po uruchomieniu nowego wystąpienia aplikacji funkcji. Możesz użyć wyzwalacza rozgrzewki, aby wstępnie załadować niestandardowe zależności, dzięki czemu funkcje są gotowe do natychmiastowego rozpoczęcia przetwarzania żądań. Niektóre akcje wyzwalacza rozgrzewki mogą obejmować otwieranie połączeń, ładowanie zależności lub uruchamianie dowolnej innej niestandardowej logiki przed rozpoczęciem odbierania ruchu przez aplikację.

Podczas korzystania z wyzwalacza rozgrzewki należy wziąć pod uwagę następujące kwestie:

  • Wyzwalacz rozgrzewki nie jest dostępny dla aplikacji uruchomionych w planie Zużycie.
  • Wyzwalacz rozgrzewania nie jest obsługiwany w wersji 1.x środowiska uruchomieniowego usługi Functions.
  • Obsługa wyzwalacza rozgrzewania jest domyślnie zapewniana we wszystkich środowiskach deweloperskich. Nie musisz ręcznie instalować pakietu ani rejestrować rozszerzenia.
  • Może istnieć tylko jedna funkcja wyzwalacza rozgrzewania dla aplikacji funkcji i nie można jej wywołać po uruchomieniu wystąpienia.
  • Wyzwalacz rozgrzewania jest wywoływany tylko podczas operacji skalowania w poziomie, a nie podczas ponownego uruchamiania lub innych nieskalowania uruchamiania. Upewnij się, że logika może załadować wszystkie wymagane zależności bez konieczności polegania na wyzwalaczu rozgrzewki. Ładowanie leniwe jest dobrym wzorcem, aby osiągnąć ten cel.
  • Zależności utworzone przez wyzwalacz rozgrzewki powinny być udostępniane innym funkcjom w aplikacji. Aby dowiedzieć się więcej, zobacz Statyczni klienci.
  • Jeśli jest używane wbudowane uwierzytelnianie (znane również jako Easy Auth), należy włączyć tylko protokół HTTPS, aby wyzwalacz rozgrzewki był wywoływany.

Przykład

Funkcję języka C# można utworzyć przy użyciu jednego z następujących trybów języka C#:

  • Model izolowanego procesu roboczego: skompilowana funkcja języka C#, która jest uruchamiana w procesie roboczym izolowanym od środowiska uruchomieniowego. Proces izolowanego procesu roboczego jest wymagany do obsługi funkcji języka C# uruchomionych w wersjach LTS i innych niż LTS platformy .NET oraz programu .NET Framework.
  • Model przetwarzania: skompilowana funkcja języka C#, która działa w tym samym procesie co środowisko uruchomieniowe usługi Functions.
  • Skrypt języka C#: używany głównie podczas tworzenia funkcji języka C# w witrynie Azure Portal.

Ważne

Wsparcie zostanie zakończone dla modelu procesu 10 listopada 2026 r. Zdecydowanie zalecamy przeprowadzenie migracji aplikacji do izolowanego modelu procesu roboczego w celu uzyskania pełnej obsługi.

W poniższym przykładzie pokazano funkcję języka C#, która jest uruchamiana w każdym nowym wystąpieniu po dodaniu do aplikacji.

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

W poniższym przykładzie pokazano wyzwalacz rozgrzewki uruchamiany po dodaniu każdego nowego wystąpienia do aplikacji.

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

W poniższym przykładzie pokazano funkcję JavaScript z wyzwalaczem rozgrzewki uruchamianym w każdym nowym wystąpieniu po dodaniu do aplikacji:

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

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

W poniższym przykładzie pokazano funkcję TypeScript z wyzwalaczem rozgrzewki uruchamianym w każdym nowym wystąpieniu po dodaniu do aplikacji:

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

Oto plik function.json:

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

Przykładowy kod programu PowerShell oczekuje.

W poniższym przykładzie pokazano wyzwalacz rozgrzewki w pliku function.json i funkcję języka Python uruchamianą w każdym nowym wystąpieniu po dodaniu go do aplikacji.

Funkcja musi mieć nazwę warmup (bez uwzględniania wielkości liter) i może istnieć tylko jedna funkcja rozgrzewania dla aplikacji.

Oto plik function.json:

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

Aby uzyskać więcej informacji, zobacz Konfiguracja.

Oto kod języka Python:

import logging
import azure.functions as func


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

Atrybuty

Biblioteki języka C# procesu roboczego zarówno w procesie przetwarzania procesowego, jak i izolowanego, używają atrybutu WarmupTrigger do zdefiniowania funkcji. Zamiast tego skrypt języka C# używa pliku konfiguracji function.json.

Użyj atrybutu WarmupTrigger , aby zdefiniować funkcję. Ten atrybut nie ma parametrów.

Adnotacje

Wyzwalacze rozgrzewania nie wymagają adnotacji. Wystarczy użyć nazwy warmup (bez uwzględniania wielkości liter) dla FunctionName adnotacji.

Konfigurowanie

Nie ma właściwości, które należy ustawić dla options obiektu przekazanego app.warmup() do metody .

Konfigurowanie

W poniższej tabeli opisano właściwości konfiguracji powiązania ustawione w pliku function.json .

właściwość function.json opis
type Wymagane — musi być ustawiona na warmupTriggerwartość .
direction Wymagane — musi być ustawiona na inwartość .
name Required — nazwa zmiennej używana w kodzie funkcji. Parametr A name jest warmupContext zalecany dla parametru powiązania.

Zobacz sekcję Przykład, aby zapoznać się z kompletnymi przykładami.

Użycie

Następujące zagadnienia dotyczą używania funkcji rozgrzewki w języku C#:

  • Funkcja musi mieć nazwę warmup (bez uwzględniania wielkości liter) przy użyciu atrybutu Function .
  • Atrybut wartości zwracanej nie jest wymagany.
  • Microsoft.Azure.Functions.Worker.Extensions.Warmup Korzystanie z pakietu
  • Wystąpienie obiektu można przekazać do funkcji.

Funkcja musi mieć nazwę warmup (bez uwzględniania FunctionName wielkości liter) przy użyciu adnotacji.

Zapoznaj się z listą zagadnień w górnej części strony, aby uzyskać ogólne porady dotyczące użycia.

Typ funkcji w function.json musi być ustawiony na warmupTrigger.

Następne kroki