Recusar bibliotecas de Python pré-instaladas para aplicativos do Databricks

Esta página descreve como desativar as bibliotecas de Python pré-instaladas em um aplicativo Databricks com escalonamento horizontal, gerenciar suas próprias dependências e reativar essas bibliotecas mais tarde. A desativação está disponível apenas em apps com escalonamento horizontal que foram convertidos a partir de um app padrão. Consulte Converter um aplicativo padrão para usar o dimensionamento horizontal. O dimensionamento horizontal está em Beta.

Quando você converter um aplicativo padrão para escalonado horizontalmente, o Azure Databricks vincula o aplicativo convertido às bibliotecas Python pré-instaladas para que as importações existentes do seu aplicativo continuem funcionando. Desative essa opção para executar o aplicativo em uma imagem base limpa do sistema operacional e declarar você mesmo todas as bibliotecas.

Recusar bibliotecas pré-instaladas

Ao optar por não participar, você instrui o Azure Databricks a criar sua próxima implantação com base em uma imagem base limpa do sistema operacional. As bibliotecas pré-instaladas não estão mais disponíveis, a menos que você as declare em requirements.txt ou pyproject.toml.

Para cancelar a assinatura:

  1. Na página de detalhes do aplicativo, clique em Editar.
  2. Na etapa Configure, desmarque a caixa de seleção Use bibliotecas de Python pré-instaladas.
  3. Clique em Salvar. A implantação em execução no momento não é afetada.
  4. Implante seu aplicativo novamente na guia Implantações . Essa nova implantação é criada com base na imagem limpa do sistema operacional base.

Suas dependências podem incluir bibliotecas pré-instaladas transitivamente, portanto, nem sempre fica claro quais bibliotecas seu aplicativo requer diretamente. Encontre bibliotecas ausentes em um aplicativo de teste antes de desativá-las na produção:

  1. Crie um novo aplicativo horizontalmente dimensionado. Novos aplicativos escalados horizontalmente já são executados na imagem limpa do SO base, portanto isso está de acordo com sua meta após o cancelamento da adesão.
  2. Implante o código-fonte do aplicativo de produção para o aplicativo de teste. Atualize requirements.txt (ou pyproject.toml) e reimplante até que o aplicativo de teste inicie, processe solicitações e passe pelos testes.
  3. Copie as declarações finais de dependência para o código-fonte do seu app em produção.
  4. No app em produção, siga as etapas em Desativar bibliotecas pré-instaladas e faça a implantação do código-fonte atualizado.

A produção continua em execução na imagem com as bibliotecas pré-instaladas até que sua nova implantação passe por verificações de integridade, portanto, essa abordagem evita o tempo de inatividade enquanto você identifica dependências ausentes no aplicativo de teste.

Resolver erros depois de recusar

A falha mais comum após desativar isso é ModuleNotFoundError na inicialização do aplicativo, causada por um framework ou biblioteca que seu código importou implicitamente do conjunto pré-instalado. Para resolvê-lo:

  1. Abra a guia Logs na página de detalhes do aplicativo.
  2. Localize o nome do módulo ausente nos logs de build ou runtime.
  3. Adicione o pacote correspondente a requirements.txt (ou pyproject.toml) e reimplante.

Uma nova implantação só substituirá a implantação em execução se o processo de aplicativo permanecer em execução pelos primeiros segundos após a inicialização. Uma implantação com desativação que falha imediatamente devido a uma importação ausente nunca assume, e o tráfego continua na implantação anterior em funcionamento enquanto você corrige a lista de dependências. A verificação de inicialização é superficial, então teste se o seu aplicativo realmente responde a requisições após desativá-la, em vez de confiar nela para detectar implantações com falha.

Ativar novamente as bibliotecas pré-instaladas

Para voltar às bibliotecas pré-instaladas após desativar:

  1. Na página de detalhes do aplicativo, clique em Editar.
  2. Na etapa Configure, selecione a caixa de seleção Use bibliotecas de Python pré-instaladas.
  3. Clique em Salvar.
  4. Implante seu aplicativo novamente na guia Implantações . Essa nova implantação se baseia na imagem base com as bibliotecas pré-instaladas.

Seus requirements.txt e pyproject.toml continuam a se aplicar, portanto, todas as declarações explícitas que você adicionou enquanto desativou essa opção são preservadas.

Note

Converter um aplicativo horizontalmente dimensionado de volta em um aplicativo padrão também restaura as bibliotecas pré-instaladas: o aplicativo padrão é recriado com elas, independentemente de você ter optado por sair. Se posteriormente você converter o aplicativo em horizontalmente dimensionado novamente, ele incluirá as bibliotecas pré-instaladas até que você opte por sair novamente.