Compartilhar via


Alterações e diretrizes para Python 3.13+ no Azure Functions

Este artigo descreve as importantes atualizações de recursos do Python introduzidas pelo Azure Functions a partir do Python 3.13. Essas alterações incluem gerenciamento de versão de runtime, aprimoramentos de desempenho e vários recursos removidos.

Controle de versão do runtime do Python

A partir do Python 3.13, Functions apresenta o controle de versão de runtime, um novo recurso opcional que permite especificar versões específicas do runtime do Python Functions usado pelo seu aplicativo.

Sem o controle de versão habilitado, seu aplicativo continua a ser executado em uma versão padrão do runtime do Python, que é gerenciado pelo Functions. Você deve modificar seu arquivo requirements.txt para solicitar a versão mais recente lançada, uma versão em pré-lançamento, ou para ser capaz de fixar seu aplicativo em uma versão específica do runtime do Python.

Habilite o controle de versão do runtime adicionando uma referência ao pacote de runtime do Python ao arquivo requirements.txt , em que o valor atribuído ao pacote determina a versão de runtime usada.

A referência específica que você adiciona em requirements.txt depende do modelo de programação do Python, que pode ser um destes valores:

Versão do modelo Nome do pacote
v2 azure-functions-runtime
v1 azure-functions-runtime-v1

Esta tabela indica o comportamento de controle de versão com base no valor de versão dessa configuração no arquivo requirements.txt :

Versão Exemplo Comportamento
Nenhum conjunto de valores azure-functions-runtime Seu aplicativo Python 3.13+ é executado na versão mais recente disponível do runtime do Python do Functions. Essa opção é melhor para se manter atualizado com melhorias e recursos da plataforma, já que seu aplicativo recebe automaticamente as atualizações de runtime estáveis mais recentes.
Fixado em uma versão específica azure-functions-runtime==1.2.0 Seu aplicativo Python 3.13+ permanece na versão de runtime fixada e não recebe atualizações automáticas. Em vez disso, você deve atualizar manualmente sua versão fixada para aproveitar novos recursos, correções e melhorias no runtime. A fixação é recomendada para cargas de trabalho de produção críticas em que a estabilidade e a previsibilidade são essenciais. A fixação também permite que você teste seu aplicativo em versões de tempo de execução pré-lançadas durante o desenvolvimento.
Nenhuma referência de pacote Não disponível Ao não definir o azure-functions-runtime, o aplicativo Python 3.13+ é executado em uma versão padrão do runtime do Python que está atrasada em relação à versão mais recente lançada. As atualizações são feitas periodicamente pelo Functions. Essa opção garante estabilidade e ampla compatibilidade. No entanto, o acesso aos recursos e correções mais recentes é adiado até que a versão padrão seja atualizada.

Tenha essas considerações em mente ao usar o controle de versão de runtime com seu aplicativo Python 3.13+:

  • Evite fixar qualquer aplicativo de produção para pré-lançamento de versões de runtime (alfa, beta ou desenvolvimento).
  • Examine as notas de versão de runtime do Python regularmente para estar ciente das alterações que estão sendo aplicadas ao runtime do Python do aplicativo ou para determinar quando atualizar uma versão fixada.

Outras alterações e melhorias introduzidas no Python 3.13

O Python 3.13 apresenta vários aprimoramentos no Functions que melhoram o desempenho e a confiabilidade e, de outra forma, afetam os comportamentos de runtime:

O isolamento de dependência agora está habilitado por padrão

Seus aplicativos agora podem se beneficiar do isolamento de dependência total, o que significa que quando seu aplicativo inclui uma dependência que também é usada pelo trabalho do Python, como azure-functions ou grpcio, seu aplicativo pode usar sua própria versão, mesmo que o runtime do Python use uma versão diferente internamente.

Esse isolamento impede conflitos de versão e melhora a compatibilidade com pacotes personalizados.

Melhor desempenho de início a frio

O Python 3.13 fornece uma redução mensurável no tempo de início frio em comparação com o Python 3.11, o que resulta em uma inicialização de aplicativo mais rápida.

Tratamento JSON mais rápido com Orjson suporte

O Functions agora dá suporte ao uso automático de Orjsonuma biblioteca JSON de alto desempenho escrita no Rust. Quando Orjson está incluído nas dependências do aplicativo, o runtime o usa automaticamente para serialização e desserialização JSON sem que você precise fazer alterações no código.

O uso Orjson pode fornecer latência mais baixa e maior taxa de transferência para cargas de trabalho pesadas de JSON, como chamadas à API HTTP e processamento de eventos. Para garantir a compatibilidade com versões anteriores, a biblioteca padrão json é usada quando Orjson não está disponível.

Aceitação simplificada para streaming HTTP

  • O recurso de Streaming HTTP agora está disponível sem a necessidade de alterações na configuração do aplicativo ou em outras configurações. Embora você ainda precise optar no nível da função, não é mais necessário adicionar a configuração PYTHON_ENABLE_INIT_INDEXING para usar o recurso.

Suporte a funcionalidades removido no Python

Esses recursos não têm mais suporte do Functions ao usar o Python 3.13 e versões posteriores:

  • Extensões de trabalho: as extensões de trabalho personalizadas não são compatíveis com o runtime do Python 3.13+. Se seu aplicativo depender dessas extensões, você deverá reavaliar ou migrar para usar alternativas com suporte.
  • Memória Compartilhada: o recurso de memória compartilhada usado para otimização de conteúdo grande não está disponível a partir do Python 3.13. Por padrão, toda a comunicação agora usa mensagens baseadas em gRPC.

Artigo relacionado