Desarrollo de aplicaciones de Databricks
Importante
Databricks Apps está en versión preliminar pública.
Nota:
Para implementar y ejecutar aplicaciones en el área de trabajo de Databricks, debe asegurarse de que el firewall no bloquee el dominio *.databricksapps.com
.
En este artículo se proporcionan detalles sobre la creación de aplicaciones de datos e inteligencia artificial con Aplicaciones de Databricks, como cómo crear y editar aplicaciones en la interfaz de usuario, cómo usar características de la plataforma de Databricks, como almacenes de SQL, secretos y trabajos de Databricks, procedimientos recomendados para desarrollar aplicaciones e información importante para desarrollar aplicaciones mediante marcos admitidos.
Cómo crear una aplicación en la interfaz de usuario de Databricks Apps?
En la barra lateral, haga clic en Nuevo y seleccione Aplicación en el menú.
Puede empezar con una aplicación de ejemplo completa y pregenerada o usar el código fuente y los artefactos.
- Para empezar con una aplicación de ejemplo, seleccione Plantilla, haga clic en la pestaña de su marco preferido y seleccione en la lista de aplicaciones.
- Para crear una aplicación con el código, seleccione Personalizado.
Haga clic en Next.
En el campo Nombre de la aplicación, escriba un nombre para la aplicación y, opcionalmente, escriba una descripción.
Nota:
- El nombre asignado a una aplicación de Databricks no se puede cambiar después de crear la aplicación y cualquier usuario con acceso a un área de trabajo de Azure Databricks puede ver los nombres y el historial de implementación de todas las aplicaciones de Databricks en el área de trabajo. Además, el nombre de la aplicación se incluye en los registros escritos en las tablas del sistema. Debido a esta visibilidad, no debe incluir información confidencial al asignar nombres a las aplicaciones de Databricks.
- El nombre debe ser único en el área de trabajo de Azure Databricks que hospeda la aplicación y solo debe contener letras minúsculas, números y guiones.
Si seleccionó Personalizado, haga clic en Crear aplicación. Si seleccionó Plantilla, configure los recursos necesarios y haga clic en Crear e implementar aplicación. Consulte Asignación de características de la plataforma de Databricks a una aplicación de Databricks.
La página de detalles de la aplicación aparece después de hacer clic en Crear e implementar la aplicación o Crear aplicación. Si seleccionó Plantilla, Databricks Apps crea la aplicación y, a continuación, implementa la aplicación, incluido el código de ejemplo de la plantilla y la configuración necesaria para la aplicación. La página de detalles de la aplicación muestra:
- Estado de la creación e implementación de la aplicación.
- Los pasos que puede usar para continuar el desarrollo de la aplicación localmente, incluida la copia de los artefactos de la aplicación en el entorno local y la sincronización de los cambios locales en el área de trabajo de Azure Databricks.
Si seleccionó Personalizado, Databricks Apps crea la aplicación. Dado que debe agregar el código y los artefactos de la aplicación, debe implementar la aplicación como un paso independiente. La página de detalles de la aplicación muestra:
- Estado de la creación de la aplicación.
- Los pasos que puede usar para sincronizar el código y los artefactos de la aplicación desde el entorno de desarrollo local al área de trabajo de Azure Databricks e implementar la aplicación.
Para aprender a configurar un entorno de desarrollo local, cree o actualice el código y la configuración de la aplicación localmente, y sincronice e implemente la aplicación en el área de trabajo de Azure Databricks, consulte Introducción a Las aplicaciones de Databricks.
Si seleccionó Plantilla y quiere copiar los artefactos de la aplicación desde el área de trabajo al entorno de desarrollo local, puede usar la CLI de Databricks:
databricks workspace export-dir <workspace-path> <target-path>
Sustituya:
<workspace-path>
con la ruta de acceso al directorio de archivos del área de trabajo que contiene el código y los artefactos de la aplicación.<target-path>
con una ruta de acceso en el entorno local en la que copiar los archivos.
Asignación de características de la plataforma de Databricks a una aplicación de Databricks
Nota:
Para usar Databricks SQL, las entidades de servicio requieren acceso a una instancia de SQL Warehouse y a las tablas a las que acceden las consultas.
Para usar características de la plataforma de Databricks, como Databricks SQL, trabajos de Databricks, servicio de modelos de IA de Mosaico y secretos de Databricks, agregue estas características a la aplicación como recursos. Puede agregar recursos al crear o editar una aplicación.
En la tarjeta Crear nueva aplicación o Editar aplicación, haga clic en Configuración> avanzada+ Agregar recurso y seleccione el tipo de recurso.
En función del tipo de recurso, complete los campos necesarios para configurar el recurso, incluido el campo Clave de recurso. Esta clave se usa más adelante para hacer referencia al recurso.
Haga clic en Save(Guardar).
Agregue una entrada para el recurso en el
app.yaml
archivo de configuración mediante la clave de recurso de SQL Warehouse. Dado que esto hace referencia al origen del valor del parámetro y no al valor real, usevalueFrom
en lugar devalue
.env: - name: "DATABRICKS_WAREHOUSE_ID" valueFrom: "sql-warehouse"
Para hacer referencia al recurso en el código de la aplicación, use el valor del
name
campo (DATABRICKS_WAREHOUSE_ID
en este ejemplo) para hacer referencia al valor de clave configurado.import os os.getenv('DATABRICKS_WAREHOUSE_ID')
Para ver más ejemplos de uso de recursos con aplicaciones, incluidos los almacenes de SQL y los puntos de conexión de servicio de modelos, consulte los ejemplos de plantilla al crear una aplicación y Procedimiento recomendado: Uso de secretos para almacenar información confidencial para una aplicación de Databricks.
Ver los detalles de una aplicación de Databricks
Para ver la página de detalles de una aplicación de Databricks:
- Haga clic en Proceso en la barra lateral.
- Vaya a la pestaña Aplicaciones .
- En la columna Nombre , haga clic en el nombre de la aplicación.
- La pestaña Información general aparece con los detalles de la aplicación, incluido su estado, la ubicación de implementación y los recursos asociados.
- Para acceder al historial de implementación de la aplicación, vaya a la pestaña Implementaciones .
- Para ver los registros de la aplicación, vaya a la pestaña Registros .
- Para ver el entorno en tiempo de ejecución de la aplicación, incluidas las variables de entorno y los paquetes instalados, vaya a la pestaña Entorno .
Configuración de permisos para la aplicación de Databricks
Para administrar los permisos de la aplicación, debe tener el CAN MANAGE
permiso o IS OWNER
.
- En la página de detalles de la aplicación, haga clic en Permisos.
- En Configuración de permisos, seleccione el menú desplegable Seleccionar usuario, grupo o entidad de servicio... y, a continuación, seleccione un usuario, grupo, entidad de servicio o todos los usuarios del área de trabajo.
- Seleccione un permiso en el menú desplegable de permisos.
- Haga clic en Agregar y, a continuación, haga clic en Guardar.
Mantenimiento del estado de la aplicación de Databricks
Cualquier estado que mantenga la aplicación en la memoria se pierde cuando se reinicia. Si la aplicación requiere mantener el estado entre reinicios, almacene el estado externamente. Por ejemplo, la aplicación puede usar volúmenes de Databricks SQL, archivos de área de trabajo o catálogo de Unity para conservar el estado.
Registro desde la aplicación de Databricks
Nota:
Para ver los registros en la interfaz de usuario de Databricks Apps o con la dirección URL de la aplicación, la aplicación debe iniciar sesión stdout
en y stderr
.
Para ver la salida estándar y el error estándar de una aplicación, en la página de detalles de la aplicación, haga clic en la pestaña Registros . Consulte Visualización de los detalles de una aplicación de Databricks.
También puede ver los registros de errores estándar y salida estándar en el <appurl>/logz
vínculo. Por ejemplo, si la dirección URL de la aplicación es https://my-app-1234567890.my-instance.databricksapps.com
, puede ver los registros en https://my-app-1234567890.my-instance.databricksapps.com/logz
. Para buscar la dirección URL de la aplicación, vaya a la página de detalles de la aplicación.
Especificación de dependencias de biblioteca para la aplicación de Databricks
Si la aplicación requiere bibliotecas de Python que no sean los paquetes instalados automáticamente con la implementación, use un requirements.txt
archivo para definir esas bibliotecas. Si un paquete del requirements.txt
archivo duplica uno de los paquetes instalados automáticamente, la versión de su requirements.txt
invalida el paquete instalado automáticamente.
Para obtener la lista de paquetes y versiones instalados como parte de la implementación de la aplicación, consulte Bibliotecas de Python instaladas.
¿Qué encabezados HTTP se pasan a las aplicaciones de Databricks?
Los encabezados siguientes X-Forwarded-*
se pasan desde el proxy inverso de Databricks Apps a las aplicaciones:
Encabezado | Descripción |
---|---|
X-Forwarded-Host |
Host o dominio original solicitado por el cliente. |
X-Forwarded-Preferred-Username |
Nombre de usuario proporcionado por IdP. |
X-Forwarded-User |
Identificador de usuario proporcionado por IdP. |
X-Forwarded-Email |
El correo electrónico del usuario proporcionado por IdP. |
X-Real-Ip |
Dirección IP del cliente que realizó la solicitud original. |
X-Request-Id |
UUID de la solicitud. |
¿Qué marcos son compatibles con Databricks Apps?
Puede usar la mayoría de los marcos de Python para desarrollar las aplicaciones. Para ver ejemplos de uso de marcos específicos, incluidos Dash, Gradio y Streamlit, seleccione en la biblioteca de aplicaciones de plantilla al crear una nueva aplicación en la interfaz de usuario. Consulte Cómo crear una aplicación en la interfaz de usuario de Databricks Apps.
Para las variables específicas de Streamlit que se establecen en el entorno de tiempo de ejecución de Databricks Apps, consulte Variables de entorno predeterminadas para Streamlit.
Procedimiento recomendado: Uso de secretos para almacenar información confidencial para una aplicación de Databricks
Databricks recomienda usar secretos para almacenar información confidencial, como las credenciales de autenticación. Para más información sobre el uso de secretos, consulte Administración de secretos.
Para usar un secreto con la aplicación:
Configure el secreto como un recurso de aplicación.
Agregue una entrada para el secreto en el archivo de configuración de
app.yaml
la aplicación.env: - name: "API_TOKEN" valueFrom: "api-token-value"
Para hacer referencia al secreto en el código de la aplicación, use el valor del
name
campo (API_TOKEN
en este ejemplo) para hacer referencia al valor de clave configurado.
token = os.getenv('API_TOKEN')
Procedimiento recomendado: Uso de características de Azure Databricks para el procesamiento de datos
El proceso de Databricks Apps está diseñado para servir la interfaz de usuario. Para asegurarse de que las aplicaciones pueden admitir de forma eficaz varios usuarios, debe usar características de Databricks para realizar cualquier cosa que no sea el procesamiento de datos simple. Por ejemplo, use Databricks SQL para el procesamiento de consultas y el almacenamiento de conjuntos de datos, trabajos de Databricks para el procesamiento de datos o el modelo que sirve para consultar modelos de IA.
Procedimiento recomendado: Seguir los procedimientos recomendados de codificación segura
Databricks recomienda seguir los procedimientos de codificación seguros al desarrollar las aplicaciones, incluidas las consultas de parametrización para evitar ataques por inyección de CÓDIGO SQL. Consulte la API de ejecución de instrucciones.
Instrucciones importantes para implementar aplicaciones de Databricks
- Databricks Apps envía una
SIGKILL
señal de 15 segundos después de unSIGTERM
, por lo que las aplicaciones deben apagarse correctamente no más de 15 segundos después de recibir laSIGTERM
señal. Si una aplicación no ha salido después de 15 segundos, se envía unaSIGKILL
señal para finalizar el proceso y todos los procesos secundarios. - Dado que Las aplicaciones de Databricks se ejecutan como un usuario del sistema sin privilegios, no pueden realizar operaciones que requieran ejecutarse en un contexto de seguridad con privilegios, como las operaciones que requieren permisos de usuario raíz.
- Las solicitudes se reenvieron desde un proxy inverso, por lo que las aplicaciones no deben depender de los orígenes de las solicitudes. El entorno de Aplicaciones de Databricks establece los parámetros de configuración necesarios para los marcos admitidos.
- Dado que el marco de aplicación de Databricks administra las conexiones de Seguridad de la capa de transporte (TLS), las aplicaciones no deben realizar ninguna conexión TLS ni operaciones de protocolo de enlace.
- Las aplicaciones deben implementarse para controlar las solicitudes en formato de texto no cifrado HTTP/2 (H2C).
- Las aplicaciones de Databricks deben hospedar servidores HTTP en
0.0.0.0
y usar el número de puerto especificado en la variable deDATABRICKS_APP_PORT
entorno. Consulte variables de entorno.