Partilhar via


Gatilho de aquecimento do Azure Functions

Este artigo explica como trabalhar com o gatilho de aquecimento no Azure Functions. Um gatilho de aquecimento é invocado quando uma instância é adicionada para dimensionar um aplicativo de função em execução. O gatilho de aquecimento permite definir uma função que é executada quando uma nova instância do seu aplicativo de função é iniciada. Você pode usar um gatilho de aquecimento para pré-carregar dependências personalizadas para que suas funções estejam prontas para começar a processar solicitações imediatamente. Algumas ações para um gatilho de aquecimento podem incluir abrir conexões, carregar dependências ou executar qualquer outra lógica personalizada antes que seu aplicativo comece a receber tráfego.

As seguintes considerações se aplicam ao usar um gatilho de aquecimento:

  • O gatilho de aquecimento não está disponível para aplicativos executados no plano de consumo.
  • O gatilho de aquecimento não é suportado na versão 1.x do tempo de execução do Functions.
  • O suporte para o gatilho de aquecimento é fornecido por padrão em todos os ambientes de desenvolvimento. Não é necessário instalar manualmente o pacote ou registrar a extensão.
  • Pode haver apenas uma função de gatilho de aquecimento por aplicativo de função e ela não pode ser invocada depois que a instância já estiver em execução.
  • O gatilho de aquecimento só é chamado durante operações de expansão, não durante reinicializações ou outras inicializações sem escala. Certifique-se de que sua lógica possa carregar todas as dependências necessárias sem depender do gatilho de aquecimento. O carregamento preguiçoso é um bom padrão para atingir este objetivo.
  • As dependências criadas pelo gatilho de aquecimento devem ser compartilhadas com outras funções em seu aplicativo. Para saber mais, consulte Clientes estáticos.
  • Se a autenticação interna (também conhecida como Easy Auth) for usada, HTTPS Only deverá ser habilitado para que o gatilho de aquecimento seja invocado.

Exemplo

Uma função C# pode ser criada usando um dos seguintes modos C#:

  • Modelo de trabalho isolado: função C# compilada que é executada em um processo de trabalho isolado do tempo de execução. O processo de trabalho isolado é necessário para suportar funções C# em execução nas versões LTS e não-LTS .NET e .NET Framework.
  • Modelo em processo: função C# compilada que é executada no mesmo processo que o tempo de execução do Functions.
  • Script C#: usado principalmente quando você cria funções C# no portal do Azure.

Importante

O suporte para o modelo em processo terminará em 10 de novembro de 2026. É altamente recomendável que você migre seus aplicativos para o modelo de trabalho isolado para obter suporte total.

O exemplo a seguir mostra uma função C# que é executada em cada nova instância quando adicionada ao seu aplicativo.

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

O exemplo a seguir mostra um gatilho de aquecimento que é executado quando cada nova instância é adicionada ao seu aplicativo.

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

O exemplo a seguir mostra uma função JavaScript com um gatilho de aquecimento que é executado em cada nova instância quando adicionada ao seu aplicativo:

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

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

O exemplo a seguir mostra uma função TypeScript com um gatilho de aquecimento que é executado em cada nova instância quando adicionada ao seu aplicativo:

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

Aqui está o arquivo function.json :

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

Código de exemplo do PowerShell pendente.

O exemplo a seguir mostra um gatilho de aquecimento em um arquivo function.json e uma função Python que é executada em cada nova instância quando é adicionada ao seu aplicativo.

Sua função deve ser nomeada warmup (não diferencia maiúsculas de minúsculas) e só pode haver uma função de aquecimento por aplicativo.

Aqui está o arquivo function.json :

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

Para obter mais informações, consulte Configuração.

Aqui está o código Python:

import logging
import azure.functions as func


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

Atributos

As bibliotecas C# de processo de trabalho em processo e isoladas usam o WarmupTrigger atributo para definir a função. Em vez disso, o script C# usa um arquivo de configuração function.json.

Use o WarmupTrigger atributo para definir a função. Este atributo não tem parâmetros.

Anotações

Os gatilhos de aquecimento não exigem anotações. Basta usar um nome de (sem distinção entre maiúsculas e warmup minúsculas) para a FunctionName anotação.

Configuração

Não há propriedades que precisam ser definidas no options objeto passado para o app.warmup() método.

Configuração

A tabela a seguir explica as propriedades de configuração de associação definidas no arquivo function.json .

function.json propriedade Description
type Obrigatório - deve ser definido como warmupTrigger.
direção Obrigatório - deve ser definido como in.
Designação Obrigatório - o nome da variável usada no código da função. A name de é recomendado para o parâmetro de warmupContext ligação.

Consulte a seção Exemplo para obter exemplos completos.

Utilização

As seguintes considerações se aplicam ao uso de uma função de aquecimento em C#:

  • Sua função deve ser nomeada warmup (não diferencia maiúsculas de minúsculas) usando o Function atributo.
  • Um atributo de valor de retorno não é necessário.
  • Utilize a Microsoft.Azure.Functions.Worker.Extensions.Warmup embalagem
  • Você pode passar uma instância de objeto para a função.

Sua função deve ser nomeada warmup (sem distinção entre maiúsculas e minúsculas) usando a FunctionName anotação.

Consulte a lista de considerações na parte superior da página para obter conselhos gerais de uso.

O tipo de função em function.json deve ser definido como warmupTrigger.

Próximos passos