Compartilhar via


Gerenciar dependências de um aplicativo do Databricks

Cada aplicativo do Databricks pode incluir dependências para Python, Node.jsou ambos. Você define essas dependências em arquivos específicos do idioma:

  • Use um requirements.txt arquivo para especificar pacotes adicionais do Python .
  • Use um package.json arquivo para especificar Node.js pacotes.

Cada aplicativo também vem com um conjunto pré-instalado de bibliotecas python. Consulte bibliotecas pré-instaladas do Python.

Definir dependências do Python

Para definir bibliotecas adicionais do Python, use um requirements.txt arquivo. Se os pacotes listados corresponderem aos pré-instalados, as versões em seu arquivo substituirão os padrões.

Por exemplo:

# Override default version of dash
dash==2.10.0

# Add additional libraries not pre-installed
requests==2.31.0
numpy==1.24.3

# Specify a compatible version range
scikit-learn>=1.2.0,<1.3.0

Evitar conflitos de versão

Tenha o seguinte em mente quando você definir dependências:

  • Substituir pacotes pré-instalados poderá causar problemas de compatibilidade se a versão especificada for significativamente diferente da pré-instalada.
  • Sempre teste seu aplicativo para garantir que as alterações de versão do pacote não introduzam erros.
  • Fixar versões específicas em requirements.txt ajuda a manter o comportamento consistente do aplicativo durante implantações.

Definir dependências de Node.js

Para definir bibliotecas Node.js, inclua um arquivo package.json na raiz do seu aplicativo. Durante a implantação, o Azure Databricks detecta esse arquivo e é executado npm install para instalar todas as dependências listadas nele.

Por exemplo, um package.json arquivo para um aplicativo React usando o Vite pode ter esta aparência:

{
  "name": "react-fastapi-app",
  "version": "1.0.0",
  "private": true,
  "type": "module",
  "scripts": {
    "build": "npm run build:frontend",
    "build:frontend": "vite build frontend"
  },
  "dependencies": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "typescript": "^5.0.0",
    "vite": "^5.0.0",
    "@vitejs/plugin-react": "^4.2.0",
    "@types/react": "^18.2.0",
    "@types/react-dom": "^18.2.0"
  }
}

Observação

Listar todos os pacotes necessários para npm run build em dependencies, e não em devDependencies. Se você definir NODE_ENV=production em suas variáveis de ambiente, o processo de implantação ignorará a instalação devDependencies.

Instalação e gerenciamento de dependências

Bibliotecas definidas em requirements.txt e package.json são instaladas diretamente no contêiner em execução em sua computação dedicada. Você é responsável por gerenciar e corrigir essas dependências.

Você pode especificar bibliotecas de várias fontes em seus arquivos de dependência:

  • Bibliotecas baixadas de repositórios públicos como PyPI e npm
  • Repositórios privados que se autenticam usando credenciais armazenadas em segredos do Azure Databricks
  • Bibliotecas armazenadas em seu /Volumes/ diretório (por exemplo, /Volumes/<catalog>/<schema>/<volume>/<path>)

Instalar a partir de repositórios privados

Para instalar pacotes de um repositório privado, configure variáveis de ambiente para autenticação. Por exemplo, defina PIP_INDEX_URL para apontar para o repositório privado:

env:
  - name: PIP_INDEX_URL
    valueFrom: my-pypi-secret

Sua configuração de rede do workspace deve permitir o acesso ao repositório privado. Consulte Configurar a rede para Aplicativos do Databricks.

Instalar arquivos de roda de volumes do Catálogo do Unity

Para instalar pacotes Python a partir de arquivos wheel armazenados em volumes do Catálogo do Unity:

  1. Adicione o volume do Catálogo do Unity como um recurso ao seu aplicativo. Consulte Volume do Unity Catalog.
  2. Faça referência ao caminho completo do arquivo wheel diretamente no seu requirements.txt:
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl

Observação

Não há suporte para referências de variáveis de ambiente em requirements.txt. Você deve especificar o caminho completo do arquivo wheel.

Para aprimorar a segurança ao acessar repositórios de pacotes externos, use controles de saída sem servidor para restringir o acesso a repositórios públicos e configurar a rede privada. Consulte Configurar a rede para Aplicativos do Databricks.