Partilhar via


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 Descrição
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 Guia para executar o C# Azure Functions no modelo de trabalhador isolado.
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 C# usando o Azure Functions.

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.*
Durable Functions 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> / ILogger obtido de FunctionContext ou usando injeção de dependência ILogger passado para a função
ILogger<T> usando 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
.NET Aspire Pré-visualizar 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 afetados adicionalmente no Windows quando se utilizam algumas versões prévias do .NET devido ao carregamento just-in-time de estruturas prévias. 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 tipos principais 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 4
Funções 4.x1 .NET 105
.NET 9.0
.NET 8.0
.NET Framework 4.82
.NET 8.0
Funções 1.x3 n/d .NET Framework 4.8

1 O .NET 6 era anteriormente suportado em ambos os modelos, mas chegou ao fim do suporte oficial em 12 de novembro de 2024. O .NET 7 era anteriormente suportado no modelo de trabalhador isolado, mas chegou ao fim do suporte oficial em 14 de maio de 2024.

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

3 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.

4 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.

5 Não podes executar aplicações .NET 10 no Linux no plano Consumo. Para rodar no Linux, você deve usar o plano Flex Consumption.

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