Partilhar via


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

Este artigo descreve atualizações importantes de recursos do Python introduzidas pelo Azure Functions começando com o Python 3.13. Essas alterações incluem gerenciamento de versão em tempo de execução, aprimoramentos de desempenho e vários recursos removidos.

Controle de versão do tempo de execução Python

A partir do Python 3.13, o Functions introduz o controle de versão em tempo de execução, um novo recurso de aceitação que permite direcionar versões específicas do tempo de execução do Python do 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 tempo de execução do Python, que é gerenciado pelo Functions. Você deve modificar seu arquivo requirements.txt para solicitar a versão lançada mais recente, uma versão pré-lançada ou para poder fixar seu aplicativo em uma versão específica do tempo de execução do Python.

Você habilita o controle de versão do tempo de execução adicionando uma referência ao pacote de tempo de execução Python ao seu arquivo requirements.txt , onde o valor atribuído ao pacote determina a versão de tempo de execução usada.

A referência específica que você adiciona no requirements.txt depende do seu modelo de programação 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 valor definido azure-functions-runtime Seu aplicativo Python 3.13+ é executado na versão mais recente disponível do tempo de execução do Python do Functions. Essa opção é melhor para se manter atualizado com as melhorias e recursos da plataforma, já que seu aplicativo recebe automaticamente as atualizações de tempo de execução estáveis mais recentes.
Afixado a uma versão específica azure-functions-runtime==1.2.0 Seu aplicativo Python 3.13+ permanece na versão de tempo de execução fixada e não recebe atualizações automáticas. Em vez disso, você deve atualizar manualmente sua versão fixada para aproveitar os novos recursos, correções e melhorias no tempo de execução. A fixação é recomendada para cargas de trabalho críticas de produção, onde a estabilidade e a previsibilidade são essenciais. A fixação também permite testar seu aplicativo em versões de tempo de execução pré-lançadas durante o desenvolvimento.
Sem referência de pacote não aplicável Ao não definir o azure-functions-runtime, seu aplicativo Python 3.13+ é executado em uma versão padrão do tempo de execução do Python que está por trás da versão lançada mais recente. As atualizações são feitas periodicamente pelo Functions. Esta 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 estas considerações em mente ao usar o controle de versão em tempo de execução com seu aplicativo Python 3.13+:

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

Outras mudanças e melhorias introduzidas no Python 3.13

O Python 3.13 introduz vários aprimoramentos nas funções que melhoram o desempenho e a confiabilidade e afetam os comportamentos de tempo de execução:

Isolamento de dependência agora 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 trabalhador do Python, como azure-functions ou grpcio, seu aplicativo pode usar sua própria versão, mesmo que o tempo de execução do Python use uma versão diferente internamente.

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

Melhor desempenho de arranque a frio

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

Tratamento JSON mais rápido com Orjson suporte

O Functions agora suporta o uso automático do Orjson, uma biblioteca JSON de alto desempenho escrita em Rust. Quando Orjson é incluído nas dependências do seu aplicativo, o tempo de execução 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 menor latência e maior taxa de transferência para cargas de trabalho pesadas em JSON, como chamadas de 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.

Opt-in simplificado para streaming HTTP

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

Suporte a recursos removido em Python

Esses recursos não são mais suportados pelo 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 tempo de execução do Python 3.13+. Se seu aplicativo depender dessas extensões, você deverá reavaliar ou migrar para o uso de alternativas suportadas.
  • Memória compartilhada: O recurso de memória compartilhada usado para otimização de carga útil grande não está disponível a partir do Python 3.13. Por padrão, todas as comunicações agora usam mensagens baseadas em gRPC.

Artigo relacionado