Excluir las bibliotecas de Python preinstaladas para aplicaciones de Databricks

En esta página se describe cómo excluir las bibliotecas de Python preinstaladas en una aplicación de Databricks con escalado horizontal, gestionar tus propias dependencias y volver a habilitar más adelante las bibliotecas preinstaladas. La opción de exclusión solo está disponible en aplicaciones con escalado horizontal convertidas a partir de una aplicación estándar. Consulte Conversión de una aplicación estándar para usar el escalado horizontal. El escalado horizontal está en beta.

Cuando conviertes una aplicación estándar para que se escale horizontalmente, Azure Databricks vincula la aplicación convertida a las bibliotecas de Python preinstaladas para que las importaciones existentes de tu aplicación sigan funcionando. Excluya esta opción para ejecutar la aplicación sobre una imagen base limpia del sistema operativo y declarar manualmente todas las bibliotecas.

Rechazar las bibliotecas preinstaladas

No participar hace que Azure Databricks compile tu próximo despliegue a partir de una imagen base limpia del sistema operativo. Las bibliotecas preinstaladas ya no están disponibles a menos que las declare en requirements.txt o pyproject.toml.

Para darse de baja:

  1. En la página de detalles de la aplicación, haga clic en Editar.
  2. En el paso Configure, desactive la casilla Use bibliotecas de Python preinstaladas.
  3. Haz clic en Guardar. La implementación que se está ejecutando actualmente no se ve afectada.
  4. Vuelva a implementar la aplicación desde la pestaña Implementaciones . Esta nueva implementación se compila en la imagen del sistema operativo base limpia.

Las dependencias pueden incluir bibliotecas preinstaladas de forma transitiva, por lo que no siempre está claro qué bibliotecas requiere la aplicación directamente. Busque las bibliotecas que faltan en una aplicación de prueba antes de optar por no participar en producción:

  1. Cree una nueva aplicación escalada horizontalmente. Las nuevas aplicaciones con escalado horizontal ya se ejecutan en la imagen base limpia del sistema operativo, por lo que coincide con su objetivo tras la exclusión voluntaria.
  2. Implemente el código fuente de la aplicación de producción en la aplicación de prueba. Actualice requirements.txt (o pyproject.toml) y vuelva a implementar hasta que se inicie la aplicación de prueba, envíe solicitudes y supere las pruebas.
  3. Copiar las declaraciones finales de dependencias en el código fuente de su aplicación de producción.
  4. En la aplicación de producción, siga los pasos de Excluir bibliotecas preinstaladas e implemente el código fuente actualizado.

La producción sigue ejecutándose en la imagen con las bibliotecas preinstaladas hasta que la nueva implementación supere las comprobaciones de estado, por lo que este enfoque evita el tiempo de inactividad mientras se identifican las dependencias que faltan en la aplicación de prueba.

Resolución de errores después de no participar

El fallo más común tras excluirse es un ModuleNotFoundError al iniciar la aplicación, causado por un framework o una biblioteca que tu código importó implícitamente del conjunto preinstalado. Para resolverlo:

  1. Abra la pestaña Registros en la página de detalles de la aplicación.
  2. Busque el nombre del módulo que falta en los registros de compilación o tiempo de ejecución.
  3. Agregue el paquete correspondiente a requirements.txt (o pyproject.toml) y vuelva a desplegarlo.

Una nueva implementación solo reemplaza la implementación en ejecución si el proceso de aplicación permanece en ejecución durante los primeros segundos después del inicio. Un despliegue con exclusión voluntaria que falla inmediatamente debido a una importación ausente nunca llega a tomar el control, y el tráfico continúa en el despliegue anterior en funcionamiento mientras corriges la lista de dependencias. La comprobación de inicio es limitada, así que, en lugar de confiar en que detecte implementaciones fallidas, comprueba que tu aplicación realmente responde a las solicitudes después de desactivarla.

Volver a activar las bibliotecas preinstaladas

Para volver a las bibliotecas preinstaladas después de optar por no participar:

  1. En la página de detalles de la aplicación, haga clic en Editar.
  2. En el paso Configure, active la casilla Use bibliotecas de Python preinstaladas.
  3. Haz clic en Guardar.
  4. Vuelva a implementar la aplicación desde la pestaña Implementaciones . Esta nueva implementación se compila en la imagen base con las bibliotecas preinstaladas.

Su requirements.txt y pyproject.toml continúan aplicándose, por lo que se conservan las declaraciones explícitas que agregó mientras se optó por no participar.

Note

La conversión de una aplicación escalada horizontalmente a una aplicación estándar también restaura las bibliotecas preinstaladas: la aplicación estándar se vuelve a compilar con ellas, independientemente de si ha optado por no participar. Si más adelante convierte la aplicación en escalado horizontalmente, incluye las bibliotecas preinstaladas hasta que vuelva a optar por no participar.