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> /ILogger obtida a partir de FunctionContext ou através de injeção de dependência |
ILogger passado para a funçãoILogger<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.