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.
O Azure Functions dá suporte a três opções de build para publicar seus aplicativos Python no Azure. Escolha seu método de build com base em seu ambiente local, dependências de aplicativo e requisitos de runtime.
Comparação rápida para ações de build
| Tipo de implantação | Onde as dependências são instaladas | Caso de uso típico |
|---|---|---|
| Compilação remota (recomendado) | Azure (Serviço de Aplicativo) | Padrão, recomendado para a maioria dos usuários |
| Compilação local | Seu computador | Devs do Linux/macOS, cenários limitados do Windows |
| Dependências personalizadas | Gerenciado por meio de URL de índice extra ou instalação local | Dependências não PyPI |
Considerações sobre o pacote de implantação
Ao implantar seu aplicativo de funções python no Azure, lembre-se desses requisitos de empacotamento:
- Conteúdo do pacote, não a pasta: Implante o conteúdo da pasta do projeto, não a pasta em si.
-
Nível da raiz
host.json: verifique se há um únicohost.jsonarquivo na raiz do pacote de implantação e não dentro de nenhuma subpasta. -
Excluir arquivos de desenvolvimento: você pode excluir pastas como
tests/,.github/e.venv*/do pacote implantado, incluindo-os em.funcignore. - O ambiente de build deve corresponder ao ambiente de produção: suas dependências devem ser criadas em um computador ubuntu usando a mesma versão do Python que o aplicativo de produção. O build remoto manipula esse cenário automaticamente.
-
As dependências devem ser instaladas em
./.python_packages/lib/site-packages: o build remoto instala todas as dependências listadas norequirements.txtdiretório correto. -
Tenha em mente o tamanho do pacote de implantação: grandes conjuntos de dependências aumentam o tempo de build, a latência de início frio e o tempo de importação e inicialização do módulo. Aplicativos com grandes bibliotecas científicas ou de ML (incluindo
pytorch) são especialmente afetados. - O build remoto tem um tempo limite de 60 segundos: se a instalação de dependência exceder o limite, o build falhará. Nesse caso, considere usar um build local e implantar com dependências predefinidas.
-
A importação de módulo tem um limite de tempo de 2 minutos: o carregamento do módulo Python e a indexação de funções durante a inicialização têm um limite de 2 minutos para Python 3.13 e superior, ou para versões mais antigas do Python com
PYTHON_ENABLE_INIT_INDEXINGhabilitado. Se seu aplicativo exceder isso, reduza as importações de nível superior ou use importações lentas (importe módulos dentro do corpo da função em vez de no escopo global).
Build remoto
O build remoto é a abordagem recomendada para uma implantação somente de código do aplicativo Python para o Functions.
Com o build remoto, a plataforma Functions gerencia a instalação de pacotes e garante a compatibilidade com o ambiente de runtime remoto. Usar o build remoto também resulta em um pacote de implantação menor.
Você pode usar o build remoto ao publicar seu aplicativo Python usando estas ferramentas:
-
Ferramentas Principais do Azure Functions: o
func azure functionapp publishcomando solicita um build remoto por padrão ao publicar aplicativos Python. -
CLI do AZ:
az functionapp deployment source config-zipusa o build remoto por padrão ao implantar aplicativos Python. - Visual Studio Code: o comando Azure Functions: Implantar no Azure... sempre usa um build remoto.
-
Entrega contínua usando o GitHub Actions: a ação Azure/functions-action@v1 usa o build remoto quando o
remote-buildparâmetro é definidotruepara o plano de Consumo Flex ou quandoscm-do-build-during-deploymenteenable-oryx-buildsão definidostruepara planos dedicados.
Para habilitar o build remoto para outros cenários, como entrega contínua com o Azure Pipelines, consulte Habilitando o Build Remoto.
O build remoto também dá suporte a índices de pacote personalizados ao se usar a PIP_EXTRA_INDEX_URL configuração do aplicativo. Para obter mais informações, consulte o build remoto.
Importante
O build remoto instala todas as dependências listadas em requirements.txt. Para garantir que todos os pacotes necessários estejam instalados, certifique-se de incluir essas dependências em seu requirements.txt arquivo.
Construção local
Se você não solicitar um build remoto, as dependências serão instaladas em seu computador. Todo o projeto local e as dependências são empacotados localmente e implantados em seu aplicativo de funções. Usar o build local resulta em um upload de pacote maior.
Você também precisa instalar dependências no diretório correto. Use pip install --target="./.python_packages/lib/site-packages" para instalar as dependências necessárias em sua pasta local .python_packages/lib/site-packages .
Por exemplo, se você tiver suas dependências listadas em um requirements.txt arquivo, poderá executar este comando:
pip install --target="./.python_packages/lib/site-packages" -r requirements.txt
Use o build local quando:
- Você está desenvolvendo localmente no Linux ou no macOS.
- O build remoto não está disponível ou está restrito.
- Você deseja definir dependências em um arquivo diferente de
requirements.txt, comopyproject.toml.
As seguintes ferramentas podem ser configuradas para usar o build local:
-
Azure Functions Core Tools: use
func azure functionapp publishcom o--no-buildsinalizador. -
CLI do AZ:
az functionapp deployment source config-zipcom o--build-remote=falsesinalizador. -
Entrega contínua usando o GitHub Actions: defina o
remote-buildparâmetro parafalsepara o plano Flex Consumption ou definascm-do-build-during-deploymenteenable-oryx-buildparafalsepara planos dedicados.
Importante
Ao desenvolver seus aplicativos Python em um computador Windows, não use o build local. Os pacotes criados em um computador Windows geralmente têm problemas ao serem implantados e executados no Linux no Azure Functions. Use apenas o build local se estiver confiante de que o pacote é executado em sistemas baseados em Linux.
Dependências personalizadas
O Azure Functions dá suporte a dependências personalizadas e outras não PyPI, usando a configuração de aplicativo PIP_EXTRA_INDEX_URL ou criando uma compilação local em um computador Linux ou macOS.
Compilação remota com uma URL de índice extra
Quando seus pacotes privados estiverem disponíveis online, você poderá solicitar um build remoto depois de definir o local do pacote privado usando a configuração do PIP_EXTRA_INDEX_URL aplicativo.
Quando você define PIP_EXTRA_INDEX_URL, as compilações remotas utilizam esse feed de pacotes durante a implantação.
PIP_INDEX_URL substitui o índice de pacote, portanto, considere usar PIP_EXTRA_INDEX_URL em vez disso para evitar um comportamento inesperado.
Pacotes ou rodas locais
Há suporte para pacotes locais e rodas ao criar aplicativos python do Azure Function.
Para instalar esses pacotes ou rodas usando o build remoto, você pode incluir as dependências em seu requirements.txt arquivo e implantar com o build remoto habilitado.
Por exemplo, seu requirements.txt arquivo pode se parecer com o seguinte snippet:
# Installing a custom wheel
<my_package_wheel>.whl
# Installing a local package
path/to/my/package
Para instalar essas dependências usando o build local, instale as dependências em sua pasta local .python_packages/lib/site-packages e implante com o build remoto desabilitado.
Por exemplo, se você tiver os pacotes definidos em seu requirements.txt arquivo, poderá instalar e publicar usando os seguintes comandos e Ferramentas Principais:
pip install --target="./.python_packages/lib/site-packages" -r requirements.txt
func azure functionapp publish <APP_NAME> --no-build