Diferenças entre o modelo de trabalho isolado e o modelo em processo para .NET no Azure Functions

Há dois modelos de execução para funções .NET:

Modelo de execução Description
Modelo de trabalhador isolado Seu código de função é executado em um processo de trabalho .NET separado. Use com versões suportadas do .NET e .NET Framework. Para saber mais, consulte Desenvolver funções de processo de trabalho isoladas do .NET.
Modelo em processo Seu código de função é executado no mesmo processo que o processo de host de funções. Suporta apenas versões LTS (Long Term Support) do .NET. Para saber mais, consulte Desenvolver funções de biblioteca de classes .NET.

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.

Este artigo descreve o estado atual das diferenças funcionais e comportamentais entre os dois modelos. Para migrar do modelo em processo para o modelo de trabalho isolado, consulte Migrar aplicativos .NET do modelo em processo para o modelo de trabalho isolado.

Tabela de comparação do modelo de execução

Use a tabela a seguir para comparar as diferenças funcionais e de recursos entre os dois modelos:

Característica/comportamento Modelo de trabalhador isolado Modeloem processo 3
Versões .NET suportadas Suporte de longo prazo (LTS) versões,
Versões STS (Standard Term Support),
.NET Framework
Versões de suporte de longo prazo (LTS), terminando com .NET 8
Pacotes principais Microsoft.Azure.Functions.Worker
Microsoft.Azure.Functions.Worker.Sdk
Microsoft.NET.Sdk.Funções
Pacotes de extensão de vinculação Microsoft.Azure.Functions.Worker.Extensions.* Microsoft.Azure.WebJobs.Extensões.*
Funções Duráveis Suportado Suportado
Tipos de modelo expostos por ligações Tipos complexos
Tipos serializáveis JSON
Matrizes/enumerações
SDK de serviço tipos4
Tipos complexos
Tipos serializáveis JSON
Matrizes/enumerações
SDK de serviço tipos4
Tipos de modelo de gatilho HTTP HttpRequestData / HttpResponseData
HttpRequest / IActionResult (usando ASP.NET integração Core)5
HttpRequest / IActionResult 5
HttpRequestMessage / HttpResponseMessage
Interações de ligação de saída Retornar valores em um modelo expandido com:
- saídas únicas ou múltiplas
- matrizes de saídas
Valores de retorno (somente saída única),
out parâmetros,
IAsyncCollector
Ligaçõesimperativas 1 Não suportado - em vez disso, trabalhe diretamente com tipos de SDK Suportado
Injeção de dependência Suportado (modelo melhorado consistente com o ecossistema .NET) Suportado
Middleware Suportado Não suportado
Registo ILogger<T>/ILoggerobtida a partir de FunctionContext ou através de injeção de dependência ILogger passado para a função
ILogger<T> via injeção de dependência
Dependências do Application Insights Suportado Suportado
Tokens de cancelamento Suportado Suportado
Temposde arranque a frio 2 Otimizações configuráveis Otimizado
ReadyToRun Suportado Suportado
[Consumo Flex] Suportado Não suportado

1 Quando você precisa interagir com um serviço usando parâmetros determinados em tempo de execução, recomenda-se o uso direto dos SDKs de serviço correspondentes em vez do uso de ligações imperativas. Os SDKs são menos detalhados, cobrem mais cenários e têm vantagens para fins de tratamento de erros e depuração. Esta recomendação aplica-se a ambos os modelos.

2 Os tempos de arranque a frio podem ser adicionalmente afetados no Windows quando se utilizam algumas versões de pré-visualização do .NET devido ao carregamento just-in-time de estruturas de pré-visualização. Esse impacto se aplica aos modelos dentro e fora do processo, mas pode ser percetível ao comparar entre diferentes versões. Esse atraso para versões de visualização não está presente nos planos do Linux.

3 As funções de script C# também são executadas em processo e usam as mesmas bibliotecas que as funções de biblioteca de classes em processo. Para obter mais informações, consulte a referência do desenvolvedor do script C# do Azure Functions (.csx).

4 Os tipos de SDK de serviço incluem tipos do SDK do Azure para .NET, como BlobClient.

5 ASP.NET Os tipos Core não são suportados para o .NET Framework.

Versões suportadas

As versões do tempo de execução do Functions suportam versões específicas do .NET. Para saber mais sobre as versões do Functions, consulte Visão geral das versões de tempo de execução do Azure Functions. O suporte à versão também depende se suas funções são executadas no processo ou no processo de trabalho isolado.

Nota

Para saber como alterar a versão de tempo de execução do Functions usada pelo seu aplicativo de função, consulte Exibir e atualizar a versão atual do tempo de execução.

A tabela a seguir mostra o nível mais alto de .NET ou .NET Framework que pode ser usado com uma versão específica do Functions.

Versão do tempo de execução do Functions Modelo de trabalhador isolado Modeloem processo 5
Funções 4.x1 .NET 9.0 (visualização)
.NET 8.0
.NET 6.02
.NET Framework 4.83
.NET 8.0
.NET 6.02
Funções 1.x4 n/d .NET Framework 4.8

1 .NET 7 foi anteriormente suportado no modelo de trabalhador isolado, mas chegou ao fim do suporte oficial em 14 de maio de 2024.

2 .NET 6 chega ao fim do suporte oficial em 12 de novembro de 2024.

3 O processo de compilação também requer o SDK do .NET.

4 O suporte termina para a versão 1.x do tempo de execução do Azure Functions em 14 de setembro de 2026. Para obter mais informações, consulte este anúncio de suporte. Para obter suporte total contínuo, você deve migrar seus aplicativos para a versão 4.x.

5 O suporte para o modelo em processo termina em 10 de novembro de 2026. Para obter mais informações, consulte este anúncio de suporte. Para obter suporte total contínuo, você deve migrar seus aplicativos para o modelo de trabalho isolado.

Para obter as últimas notícias sobre as versões do Azure Functions, incluindo a remoção de versões secundárias mais antigas específicas, monitore os anúncios do Serviço de Aplicativo do Azure.

Próximos passos