Partilhar via


Atualizar versões da pilha de idiomas no Azure Functions

No Azure Functions, o suporte para uma pilha de idiomas é limitado a versões específicas. À medida que novas versões se tornam disponíveis, você pode querer atualizar seus aplicativos de função para aproveitar os novos recursos. O suporte nas Funções também termina para versões mais antigas e é normalmente alinhado aos prazos de fim de suporte da comunidade. Para obter mais informações, consulte a política de suporte ao tempo de execução de linguagem. Para versões suportadas de vários idiomas, consulte Idiomas por versão de tempo de execução.

Para ajudar a garantir que seus aplicativos de função continuem a receber 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ção depende de vários fatores:

  • A linguagem que você usa para desenvolver seus aplicativos de função. Certifique-se de selecionar sua linguagem de programação na parte superior deste artigo.
  • O sistema operacional no qual seu aplicativo de função é executado no Azure: Windows ou Linux.
  • O plano de hospedagem.

Nota

Este artigo mostra como atualizar a versão .NET de um aplicativo de função que usa o modelo de trabalho isolado. Se seu aplicativo de função 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ção

Antes de atualizar a configuração de pilha para seu aplicativo de função no Azure, conclua as tarefas nas seções a seguir.

Rever dependências

Antes de atualizar as versões da linguagem, reveja estas potenciais dependências:

  • Pacotes de extensões: Verifique se o seu host.json ficheiro faz referência a uma versão compatível do pacote de extensões. Os pacotes da versão 4.x são recomendados para a maioria dos cenários.
  • Extensões de binding: Atualize quaisquer referências explícitas a extensões de binding para versões compatíveis com a sua nova versão de linguagem.

  • Dependências de pacotes: Reveja e atualize todas as dependências de pacotes para versões que suportem a sua versão na língua de destino.

  • Ferramentas locais: Garanta que as suas ferramentas de desenvolvimento local, como as Azure Functions Core Tools, SDKs e IDEs, suportam a nova versão da linguagem.

Verifique seu aplicativo de função localmente

Teste e verifique o código do aplicativo de função localmente na nova versão de destino.

Use estas etapas para atualizar o projeto em seu computador local:

  1. Verifique se a versão de destino do SDK do .NET está instalada.

    Se você estiver visando uma versão de visualização, consulte Orientações de funções para versões de visualização do .NET para garantir que a versão seja suportada. Usar visualizações do .NET pode exigir mais etapas.

  2. Atualize suas referências para as versões mais recentes do Microsoft.Azure.Functions.Worker e Microsoft.Azure.Functions.Worker.Sdk.

  3. Atualize a estrutura de destino do seu projeto para a nova versão. Para projetos C#, você deve atualizar o <TargetFramework> elemento no arquivo .csproj . Para obter mais informações sobre sua versão, consulte Estruturas de destino.

    Alterar a estrutura de destino do seu projeto também pode exigir alterações em partes da sua cadeia de ferramentas, fora do código do projeto. Por exemplo, no Visual Studio Code, talvez seja necessário atualizar a configuração de azureFunctions.deploySubpath extensão nas configurações do usuário ou no arquivo .vscode/settings.json do projeto. Verifique se há dependências na versão da estrutura que existam fora do código do projeto, como parte das etapas de construção ou de um pipeline de integração contínua e entrega contínua (CI/CD).

  4. Faça todas as atualizações para o código do projeto que a nova versão do .NET exige. 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 a atualizar seu código em resposta a alterações nas versões principais.

Depois de fazer essas alterações, recrie seu projeto e teste-o para confirmar que seu aplicativo de função é executado conforme o esperado.

Mover para o tempo de execução mais recente do Functions

Certifique-se de que a sua aplicação de funções corre na versão mais recente do runtime de Funções (versão 4.x). Você pode determinar a versão de tempo de execução no portal do Azure ou usando a CLI do Azure.

Use estas etapas para determinar sua versão de tempo de execução do Functions:

  1. No portal do Azure, localize e selecione seu aplicativo de função. No menu lateral, selecione Configurações>de configuração.

  2. Vá para a guia Configurações de tempo de execução da função e verifique o valor da versão do tempo de execução . Seu aplicativo de função deve ser executado na versão 4.x do tempo de execução do Functions (~4).

Se você precisar atualizar seu aplicativo de função para a versão 4.x, consulte 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 FUNCTIONS_EXTENSION_VERSION configuração.

Publicar atualizações de aplicativos de função

Se você atualizou seu aplicativo de função para ser executado corretamente na nova versão, publique as atualizações do aplicativo de função antes de atualizar a configuração de pilha para seu aplicativo de função.

Gorjeta

Para simplificar o processo de atualização, minimizar o tempo de inatividade das suas aplicações de funções e fornecer uma possível versão para reversão, publique a sua aplicação de funções atualizada num slot de teste. Para obter mais informações, consulte Slots de implantação do Azure Functions.

Quando você publicar seu aplicativo de função atualizado em um slot de preparação, siga as instruções de atualização específicas do slot no restante deste artigo. Mais tarde, você troca o slot de preparo atualizado para a produção.

Considera usar slots

Antes de atualizar a versão linguística da sua aplicação de funções, crie um slot de implementação para usar em testes e implementação. Esta abordagem minimiza o tempo de inatividade e oferece uma opção de reversão fácil caso surjam problemas. Os exemplos neste artigo utilizam um slot de staging chamado staging.

Plano de Consumo Flexível: Os slots não são atualmente suportados. Deves primeiro verificar o teu código atualizado numa aplicação que não seja função de produção. Ao implementar para uma aplicação em execução, pode ser possível usar a estratégia de atualização contínua. Para obter mais informações, consulte Estratégias de atualização de site no Flex Consumption.

Importante

A estratégia de atualização contínua está atualmente em pré-visualização e não é recomendada para aplicativos de produção. Analise 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 da pilha depende se seu aplicativo de função é executado no Windows ou no Linux no Azure.

Ao usar um slot de preparação, certifique-se de direcionar as suas atualizações para o slot correto.

Use as seguintes etapas para atualizar a versão do Java:

  1. No portal do Azure, localize e selecione seu aplicativo de função. No menu lateral, selecione Configurações>de configuração. Se tiver um espaço de preparação, selecione o espaço específico.

  2. Na guia Configurações gerais , atualize a versão do Java para a versão desejada.

  3. Selecione Guardar. Quando for notificado sobre uma reinicialização, selecione Continuar.

Use as seguintes etapas para atualizar a versão do .NET:

  1. No portal do Azure, localize e selecione seu aplicativo de função. No menu lateral, selecione Configurações>de configuração. Se tiver um espaço de preparação, selecione o espaço específico.

  2. Na guia Configurações gerais , atualize a versão do .NET para a versão desejada.

  3. Selecione Guardar. Quando for notificado sobre uma reinicialização, selecione Continuar.

Use as seguintes etapas para atualizar a versão Node.js:

  1. No portal do Azure, localize e selecione seu aplicativo de função. No menu lateral, selecione Configurações>de configuração. Se tiver um espaço de preparação, selecione o espaço específico.

  2. Na guia Configurações gerais , atualize Node.js Versão para a versão desejada.

  3. Selecione Guardar. Quando for notificado sobre uma reinicialização, selecione Continuar. Essa alteração atualiza a configuração do WEBSITE_NODE_DEFAULT_VERSION aplicativo.

Use as seguintes etapas para atualizar a versão do PowerShell:

  1. No portal do Azure, localize e selecione seu aplicativo de função. No menu lateral, selecione Configurações>de configuração. Se tiver um espaço de preparação, selecione o espaço específico.

  2. Na guia Configurações gerais , atualize a versão principal do PowerShell para a versão desejada.

  3. Selecione Guardar. Quando for notificado sobre uma reinicialização, selecione Continuar.

O portal não suporta aplicações Python no Windows. Em vez disso, vá para a guia Linux .

Seu aplicativo de função é reiniciado depois que você atualiza a versão.

Nota

Durante o reinício, a sua aplicação de funções fica indisponível por um curto período, normalmente entre 30 a 60 segundos. Se atualizar diretamente uma aplicação de funções em produção (sem usar um slot de staging), prepare-se para este tempo de inatividade durante uma janela de manutenção. O reinício termina quaisquer pedidos durante o voo, e os novos pedidos falham até a aplicação reiniciar com sucesso.

Verificar a atualização

Depois de a sua aplicação de funções reiniciar, verifique se a atualização da versão da língua foi bem-sucedida.

  1. No portal do Azure, localize e selecione seu aplicativo de função. No menu lateral, selecione Configurações>de configuração.

  2. No separador de definições Gerais , verifique se a versão de língua mostra a nova versão que selecionou.

  3. Selecione Visão Geral no menu lateral e confirme que o Estado aparece como Em Execução.

Depois de verificares a versão, verifica também se as tuas funções funcionam como esperado.

Trocar slots

Se utilizar um slot de preparação para implementar o seu projeto de código e atualizar as suas definições, troque o slot de preparação para produção. Para obter mais informações, consulte Trocar slots.

Solução de problemas

Se tiver problemas após atualizar a versão da língua, utilize as seguintes orientações para resolver problemas comuns:

A aplicação de funções não arranca

Sintomas: O estado da aplicação de funções mostra como Parado ou reinicia continuamente.

Soluções:

  1. Consulte os registos de candidaturas no portal Azure:

    • Navegue até à sua aplicação de funções e selecione Monitorização>Fluxo de Registo.
    • Procure mensagens de erro relacionadas com incompatibilidades de versões em tempo de execução ou de linguagem.
  2. Verifique se todas as dependências são compatíveis com a nova versão da linguagem:

    • Para .NET, certifique-se de que os pacotes NuGet suportam o framework de destino.
    • Para Python, verifica se as versões dos pacotes em requirements.txt são compatíveis.
    • Para Node.js, as dependências de verificação package.json suportam a nova versão do Node.
  3. Verifica a versão do pacote de extensões no teu host.json ficheiro. Pacotes mais antigos podem não suportar versões mais recentes em línguas.

As funções falham com erros de execução

Sintomas: Funções individuais falham quando ativadas, com erros nos registos.

Soluções:

  1. Revise as alterações urgentes para a sua versão linguística:

  2. Atualize as extensões de binding para versões compatíveis com a sua nova versão de idioma.

  3. Testa as funções localmente com a nova versão do idioma antes de as reimplantares.

Conflitos de versões de extensão

Sintomas: Erros que mencionam incompatibilidades de versões de extensão ou ligação.

Soluções:

  1. Atualize a versão do pacote de extensões para host.json a versão 4.x ou posterior.

    {
      "version": "2.0",
      "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.*, 5.0.0)"
      }
    }
    
  2. Para projetos .NET que usam referências explícitas de extensão, atualize todos Microsoft.Azure.WebJobs.Extensions.* os pacotes para as suas versões mais recentes.

Reverter a atualização

Se precisares de voltar à versão anterior da língua:

  1. Se usaste um slot de encenação:

    • Troca o slot de encenação de volta para produção.
    • Atualize o slot de encenação para a versão anterior para tentativas futuras.
  2. Se atualizaste a produção diretamente:

    • Siga os mesmos passos de atualização deste artigo, mas especifique a sua versão anterior da língua.
    • Reimplemente a sua versão anterior do código.
  3. Monitorize a sua aplicação de funções para garantir que regressa ao funcionamento normal.

Gorjeta

Para evitar problemas, teste sempre as atualizações de versões da linguagem num slot de staging antes de as aplicar em produção. Crie uma cópia de segurança da configuração da sua app de funções antes de fazer alterações.