Compartir a través de


Administración de dependencias para una aplicación de Databricks

Cada aplicación de Databricks puede incluir dependencias para Python, Node.jso ambas. Estas dependencias se definen en archivos específicos del lenguaje:

  • Use un requirements.txt archivo para especificar paquetes adicionales de Python .
  • Usa un archivo package.json para especificar paquetesNode.js.

Cada aplicación también incluye un conjunto preinstalado de bibliotecas de Python. Consulte Bibliotecas de Python preinstaladas.

Definición de dependencias de Python

Para definir bibliotecas adicionales de Python, use un requirements.txt archivo . Si alguno de los paquetes enumerados coincide con los instalados previamente, las versiones del archivo invalidan los valores predeterminados.

Por ejemplo:

# 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 conflictos de versiones

Tenga en cuenta lo siguiente al definir dependencias:

  • La invalidación de paquetes preinstalados puede provocar problemas de compatibilidad si la versión especificada difiere significativamente de la preinstalada.
  • Pruebe siempre la aplicación para asegurarse de que los cambios en la versión del paquete no introducen errores.
  • Anclar versiones explícitas en requirements.txt ayuda a mantener un comportamiento coherente de la aplicación en todas las implementaciones.

Definición de dependencias de Node.js

Para definir bibliotecas Node.js, incluye un archivo package.json en la raíz de tu aplicación. Durante la implementación, Azure Databricks detecta este archivo y se ejecuta npm install para instalar todas las dependencias enumeradas en él.

Por ejemplo, un package.json archivo para una aplicación react con Vite podría tener este aspecto:

{
  "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"
  }
}

Nota:

Enumere todos los paquetes necesarios para npm run build en dependencies, no devDependencies. Si establece NODE_ENV=production en las variables de entorno, el proceso de implementación omite la instalación de devDependencies.

Instalación y administración de dependencias

Las bibliotecas definidas en requirements.txt y package.json se instalan directamente en el contenedor que se ejecuta en el proceso dedicado. Usted es responsable de gestionar y aplicar parches a estas dependencias.

Puede especificar bibliotecas de varios orígenes en los archivos de dependencia:

  • Bibliotecas descargadas de repositorios públicos como PyPI y npm
  • Repositorios privados que se autentican mediante credenciales almacenadas en secretos de Azure Databricks
  • Bibliotecas almacenadas en el /Volumes/ directorio (por ejemplo, /Volumes/<catalog>/<schema>/<volume>/<path>)

Instalación desde repositorios privados

Para instalar paquetes desde un repositorio privado, configure variables de entorno para la autenticación. Por ejemplo, establezca PIP_INDEX_URL para que apunte al repositorio privado:

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

La configuración de red del área de trabajo debe permitir el acceso al repositorio privado. Consulte Configuración de redes para Aplicaciones de Databricks.

Instalación de archivos wheel desde los volúmenes del Catálogo de Unity

Para instalar paquetes de Python desde archivos Wheel almacenados en volúmenes del Catálogo de Unity:

  1. Agregue el volumen del catálogo de Unity como un recurso a la aplicación. Consulte Volumen del catálogo de Unity.
  2. Haga referencia directamente a la ruta completa del archivo wheel en requirements.txt:
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl

Nota:

Las referencias a variables de entorno no se admiten en requirements.txt. Debe codificar la ruta de acceso completa del archivo de rueda.

Para mejorar la seguridad al acceder a repositorios de paquetes externos, use controles de salida sin servidor para restringir el acceso a repositorios públicos y configurar redes privadas. Consulte Configuración de redes para Aplicaciones de Databricks.