Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
No Azure Functions, o suporte para uma pilha de linguagens é limitado a versões específicas. À medida que novas versões se tornam disponíveis, talvez você queira atualizar seus aplicativos de funções para aproveitar os novos recursos. O suporte em Functions também termina para versões mais antigas e normalmente se alinha com cronogramas de fim de suporte da comunidade. Para obter mais informações, veja a política de suporte de runtime da linguagem. Para versões com suporte de várias linguagens, veja Linguagens por versão de runtime.
Para ajudar a garantir que seus aplicativos de funções continuem recebendo suporte, siga as instruções neste artigo para atualizá-los para as versões mais recentes disponíveis. A maneira como você atualiza seu aplicativo de funções depende de vários fatores:
- A linguagem que você usa para desenvolver seus aplicativos de funções. Selecione sua linguagem de programação na parte superior deste artigo.
- O sistema operacional no qual seu aplicativo de funções é executado no Azure: Windows ou Linux.
- O plano de hospedagem.
Observação
Este artigo mostra como atualizar a versão do .NET de um aplicativo de funções que usa o modelo de trabalho isolado. Se o aplicativo de funções for executado em uma versão mais antiga do .NET e usar o modelo em processo, considere as seguintes opções:
Prepare seu aplicativo de funções
Antes de atualizar a configuração de pilha para seu aplicativo de funções no Azure, conclua as tarefas nas seções a seguir.
Examinar dependências
Antes de atualizar as versões do idioma, examine estas dependências potenciais:
-
Pacotes de extensão: verifique se o
host.jsonarquivo faz referência a uma versão de pacote de extensão compatível. Os pacotes da versão 4.x são recomendados para a maioria dos cenários.
Extensões de associação: atualize as referências de extensão de associação explícitas para versões compatíveis com sua nova versão de idioma.
Dependências do pacote: examine e atualize todas as dependências do pacote para versões que dão suporte à sua versão de idioma de destino.
Ferramentas locais: verifique se as ferramentas de desenvolvimento locais, como ferramentas do Azure Functions Core, SDKs e IDEs, dão suporte à nova versão do idioma.
Verifique seu aplicativo de funções localmente
Teste e verifique o código do aplicativo de funções localmente na nova versão de destino.
Use estas etapas para atualizar o projeto em seu computador local:
Verifique se a versão de destino do SDK do .NET está instalada.
Se você estiver direcionando uma versão prévia, consulte as diretrizes do Functions para versões prévias do .NET para garantir que a versão tenha suporte. Usar as visualizações do .NET pode exigir mais etapas.
Atualize suas referências para as versões mais recentes de Microsoft.Azure.Functions.Worker e Microsoft.Azure.Functions.Worker.Sdk.
Atualize a estrutura de destino do projeto para a nova versão. Para os projetos C#, você deve atualizar o elemento
<TargetFramework>no arquivo .csproj. Para obter mais informações sobre sua versão, veja as Estruturas de destino.Alterar a estrutura de destino do projeto também pode exigir alterações em partes da cadeia de ferramentas, fora do código do projeto. Por exemplo, no Visual Studio Code, talvez seja necessário atualizar a configuração da extensão
azureFunctions.deploySubpathnas configurações do usuário ou no arquivo .vscode/settings.json do projeto. Verifique se há dependências na versão da estrutura que existem fora do código do projeto, como parte das etapas de build ou de um pipeline de CI/CD (integração contínua e entrega contínua).Faça atualizações no código do projeto necessárias para a nova versão do .NET. Verifique as notas de versão da versão para obter informações específicas. Você também pode usar o Assistente de Atualização do .NET para ajudar você a atualizar seu código em resposta a alterações em versões principais.
Depois de fazer essas alterações, recompile o projeto e teste-o para confirmar que o aplicativo de funções é executado conforme o esperado.
Mover para o runtime mais recente do Functions
Verifique se o aplicativo de funções é executado na versão mais recente do runtime do Functions (versão 4.x). Você pode determinar a versão de runtime no portal do Azure ou usando a CLI do Azure.
Use estas etapas para determinar a versão do seu runtime do Functions:
No portal do Azure, localize e selecione seu aplicativo de funções. No menu lateral, selecione Definições>Configurações.
Vá para a guia Configurações de runtime de função e verifique o valor da Versão do runtime. Seu aplicativo de funções deve ser executado na versão 4.x do runtime do Functions (
~4).
Se você precisar atualizar seu aplicativo de funções para a versão 4.x, veja Migrar aplicativos do Azure Functions versão 1.x para a versão 4.x ou Migrar aplicativos do Azure Functions versão 3.x para a versão 4.x. Siga as instruções nesses artigos em vez de apenas alterar a configuração FUNCTIONS_EXTENSION_VERSION.
Publicar as atualizações do aplicativo de funções
Se você atualizou seu aplicativo de funções para ser executado corretamente na nova versão, publique as atualizações do aplicativo de funções antes de atualizar a configuração de pilha para seu aplicativo de funções.
Dica
Para simplificar o processo de atualização, minimizar o tempo de inatividade dos seus aplicativos de função e oferecer uma versão potencial para reversão, publique o aplicativo de função atualizado em um slot de preparo. Para obter mais informações, consulte Slots de implantação do Azure Functions.
Ao publicar seu aplicativo de funções atualizado em um slot de preparo, siga as instruções de atualização específicas do slot no restante deste artigo. Posteriormente, você alternará o slot de preparo atualizado para produção.
Considere usar slots
Antes de atualizar a versão do idioma do aplicativo de funções, crie um slot de implantação a ser usado para teste e implantação. Essa abordagem minimiza o tempo de inatividade e fornece uma opção de reversão fácil se ocorrerem problemas. Os exemplos neste artigo usam um slot de estágio chamado staging.
Plano de consumo flex: não há suporte para slots no momento. Primeiro, você deve verificar o código atualizado em um aplicativo de funções de não produção. Ao implantar em um aplicativo em execução, talvez você possa usar a estratégia de atualização sem interrupção. Para obter mais informações, consulte Estratégias de Atualização de Site no Flex Consumption.
Importante
A estratégia de atualização sem interrupção está atualmente em versão prévia e não é recomendada para aplicativos de produção. Examine as limitações e considerações atuais antes de habilitar essa estratégia em qualquer aplicativo de produção.
Atualizar a configuração da pilha
A maneira como você atualiza a configuração de pilha depende se o aplicativo de funções é executado no Windows ou no Linux no Azure.
Ao usar um slot de preparo, certifique-se de direcionar suas atualizações para o slot correto.
Use as etapas a seguir para atualizar a versão do Java:
No portal do Azure, localize e selecione seu aplicativo de funções. No menu lateral, selecione Definições>Configurações. Se você tiver um slot de preparo, selecione o slot específico.
Na guia Configurações gerais, atualize a Versão Java para a versão desejada.
Clique em Salvar. Quando você for notificado sobre uma reinicialização, selecione Continuar.
Use as etapas a seguir para atualizar a versão do .NET:
No portal do Azure, localize e selecione seu aplicativo de funções. No menu lateral, selecione Definições>Configurações. Se você tiver um slot de preparo, selecione o slot específico.
Na guia Configurações gerais, atualize a Versão do .NET para a versão desejada.
Clique em Salvar. Quando você for notificado sobre uma reinicialização, selecione Continuar.
Use as seguintes etapas para atualizar a versão do Node.js:
No portal do Azure, localize e selecione seu aplicativo de funções. No menu lateral, selecione Definições>Configurações. Se você tiver um slot de preparo, selecione o slot específico.
Na guia Configurações gerais, atualize a Versão do Node.js para a versão desejada.
Clique em Salvar. Quando você for notificado sobre uma reinicialização, selecione Continuar. Essa alteração atualiza a configuração de aplicativo
WEBSITE_NODE_DEFAULT_VERSION.
Use as seguintes etapas para atualizar a versão do PowerShell:
No portal do Azure, localize e selecione seu aplicativo de funções. No menu lateral, selecione Definições>Configurações. Se você tiver um slot de preparo, selecione o slot específico.
Na guia Configurações gerais, atualize a Versão do PowerShell Core para a versão desejada.
Clique em Salvar. Quando você for notificado sobre uma reinicialização, selecione Continuar.
O portal não dá suporte a aplicativos Python no Windows. Vá para a guia Linux.
Seu aplicativo de funções é reiniciado depois que você atualiza a versão.
Observação
Durante a reinicialização, seu aplicativo de funções fica indisponível por um breve período, normalmente de 30 a 60 segundos. Se você atualizar um aplicativo de funções de produção diretamente (sem usar um slot de preparo), planeje esse tempo de inatividade durante uma janela de manutenção. A reinicialização encerra todas as solicitações em andamento e novas solicitações falham até que o aplicativo seja reiniciado com êxito.
Verifique a atualização
Depois que o aplicativo de funções for reiniciado, verifique se a atualização da versão do idioma foi bem-sucedida.
No portal do Azure, localize e selecione seu aplicativo de funções. No menu lateral, selecione Definições>Configurações.
Na guia Configurações gerais , verifique se a versão do idioma exibe a nova versão selecionada.
Selecione Visão geral no menu lateral e confirme se o Status é mostrado como Em execução.
Depois de verificar a versão, verifique também se suas funções funcionam conforme o esperado.
Trocar slots
Se você usar um slot de preparo para implantar seu projeto de código e atualizar suas configurações, troque o slot de preparo para o de produção. Para obter mais informações, consulte os slots de troca.
Resolução de problemas
Se você tiver problemas após atualizar a versão do idioma, use as seguintes diretrizes para resolver problemas comuns:
O aplicativo de funções não é iniciado
Sintomas: O status do aplicativo de funções é mostrado como Parado ou reinicia continuamente.
Soluções:
Verifique os logs de aplicativos no portal do Azure:
- Navegue até seu aplicativo de funções e selecione Monitoramento>fluxo de logs.
- Procure mensagens de erro relacionadas a incompatibilidades de versão de linguagem de programação ou tempo de execução.
Verifique se todas as dependências são compatíveis com a nova versão do idioma:
- Para .NET, verifique se os pacotes NuGet dão suporte à estrutura de destino.
- Para Python, verifique se as versões dos pacotes em
requirements.txtsão compatíveis. - Para o Node.js, verifique se as dependências
package.jsonoferecem suporte à nova versão do Node.js.
Verifique a versão do pacote de extensão no
host.jsonarquivo. Os pacotes mais antigos podem não dar suporte a versões de idioma mais recentes.
As funções falham com erros de runtime
Sintomas: As funções individuais falham quando disparadas, com erros nos logs.
Soluções:
Examine as alterações interruptivas para sua versão de idioma:
- Consulte alterações significativas no .NET para sua versão de destino.
- Examine as notas de versão do Java para obter diretrizes de migração.
- Verifique Node.js notas de versão para alterações interruptivas.
- Confira as novidades no Python para ver as alterações específicas à versão.
- Revise as notas de versão do PowerShell para alterações.
Atualize as extensões de associação para versões compatíveis com sua nova versão de idioma.
Teste as funções localmente com a nova versão do idioma antes de reimplantar.
Conflitos de versão de extensão
Sintomas: Erros que mencionam incompatibilidades de versão de "extensão" ou "vinculação".
Soluções:
Atualize o pacote de extensão em
host.jsonpara a versão 4.x ou posterior.{ "version": "2.0", "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", "version": "[4.*, 5.0.0)" } }Para projetos .NET que usam referências explícitas de extensão, atualize todos os
Microsoft.Azure.WebJobs.Extensions.*pacotes para suas versões mais recentes.
Revertendo a atualização
Se você precisar reverter para a versão do idioma anterior:
Se você usou um slot de teste:
- Alterne o slot de preparação de volta para produção.
- Atualize o slot de preparação para a versão anterior para futuras tentativas.
Se você atualizou a produção diretamente:
- Siga as mesmas etapas de atualização neste artigo, mas especifique sua versão do idioma anterior.
- Reimplante sua versão de código anterior.
Monitore seu aplicativo de funções para garantir que ele retorne à operação normal.
Dica
Para evitar problemas, sempre teste atualizações de versão do idioma em um slot de preparo antes de aplicá-las à produção. Crie um backup da configuração do aplicativo de funções antes de fazer alterações.