Partilhar via


Gerenciar dependências para um aplicativo Databricks

Cada aplicativo 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 Python adicionais.
  • 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 Python pré-instaladas.

Definir dependências do Python

Para definir bibliotecas Python adicionais, use um requirements.txt arquivo. Se algum pacote listado corresponder aos pré-instalados, as versões no seu arquivo substituem 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 em mente o seguinte ao definir dependências:

  • A substituição de pacotes pré-instalados pode causar problemas de compatibilidade se a versão especificada for significativamente diferente da versão pré-instalada.
  • Sempre teste seu aplicativo para garantir que as alterações de versão do pacote não introduzam erros.
  • Fixar versões explícitas em requirements.txt ajuda a manter um comportamento consistente da aplicação em todas as implementações.

Definir Node.js dependências

Para definir bibliotecas Node.js, inclua um package.json ficheiro no diretório raiz da sua aplicação. Durante a implantação, o Azure Databricks detecta esse arquivo e executa o 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

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

Instalação e gerenciamento de dependência

As bibliotecas definidas em requirements.txt e package.json são instaladas diretamente no contentor em execução na 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 no 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

A configuração de rede do espaço de trabalho deve permitir o acesso ao repositório privado. Consulte Configurar rede para aplicativos Databricks.

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

Para instalar pacotes Python a partir de ficheiros wheel armazenados em volumes do Unity Catalog:

  1. Adicione o volume do Catálogo Unity como um recurso ao seu aplicativo. Consulte o volume do catálogo Unity.
  2. Consulte o caminho completo do ficheiro da roda diretamente no seu requirements.txt:
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl

Observação

As referências de variáveis de ambiente não são suportadas em requirements.txt. Têm de hardcode o caminho completo do ficheiro Wheel.

Para aumentar 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 rede para aplicativos Databricks.