Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Databricks Apps le permite crear aplicaciones de inteligencia artificial y datos seguros en la plataforma de Databricks que puede compartir fácilmente con los usuarios. Puede administrar las implementaciones de las aplicaciones mediante Conjuntos de recursos de Databricks. Para obtener más información sobre las aplicaciones y agrupaciones, consulte Aplicaciones de Databricks y ¿Qué son los conjuntos de recursos de Databricks?.
Este artículo le guía a través del desarrollo de una aplicación de Databricks localmente y, a continuación, configura una agrupación para administrar las implementaciones de la aplicación en el área de trabajo de Databricks mediante Conjuntos de recursos de Databricks.
Sugerencia
Para inicializar un paquete de ejemplo con una aplicación Streamlit, use la plantilla streamlit-app bundle con el bundle init comando :
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
Requisitos
- El área de trabajo de Databricks y el entorno de desarrollo local deben cumplir los requisitos de Databricks Apps. Consulte Configuración del área de trabajo y el entorno de desarrollo de Databricks Apps.
- Versión 0.250.0 o posterior de la CLI de Databricks. Para comprobar la versión de la CLI de Databricks instalada, ejecute el comando
databricks -v. Para instalar la CLI de Databricks, consulte Instalación o actualización de la CLI de Databricks.
Creación de una aplicación localmente
En primer lugar, cree una aplicación de Databricks. Las aplicaciones se desarrollan en Python mediante marcos populares, como Dash o Gradio. Puede compilar una aplicación de Databricks localmente desde cero, crear una en el área de trabajo de Databricks y, a continuación, sincronizar los archivos con la máquina local o obtener una aplicación de ejemplo de Databricks desde GitHub.
Para compilar una aplicación desde cero:
Siga un tutorial de inicio rápido para un marco:
Agregue un
app.yamlarchivo a la raíz del proyecto para definir cómo ejecutar la aplicación principal de Python. Por ejemplo:Para una aplicación Streamlit:
command: ['streamlit', 'run', 'app.py']Ejemplo de una aplicación Dash:
command: ['python', 'app.py']
Para crear una aplicación en el área de trabajo y sincronizarla localmente:
Siga los pasos descritos en Introducción a las aplicaciones de Databricks para crear una aplicación en la interfaz de usuario.
Cree un directorio local para la aplicación y
cden él:mkdir hello-world-app cd hello-world-appSincronice los archivos de la aplicación localmente. Puede copiar el
databricks workspace export-dircomando desde la página de instalación de la aplicación en la interfaz de usuario del área de trabajo y ejecutarlo en la línea de comandos. Por ejemplo:databricks workspace export-dir /Workspace/Users/someone@example.com/databricks_apps/hello-world_2025_05_09-17_43/hello-world-app .Esto descarga los archivos de la aplicación del directorio del área de trabajo al directorio
hello-world-appde tu equipo local.
Para obtener una aplicación de ejemplo de Databricks desde GitHub:
Clona el repositorio de GitHub de plantillas de aplicaciones de Databricks:
git clone https://github.com/databricks/app-templatesElija una de las aplicaciones de ejemplo como un proyecto de aplicación simple.
Agregar una aplicación existente a una agrupación existente
Si tiene una aplicación de Databricks en el área de trabajo y tiene un lote existente al que desea agregar la aplicación, puede usar el databricks bundle generate app comando . Este comando genera un archivo de configuración para la aplicación y descarga todos los archivos de código fuente de la aplicación y los agrega a la agrupación. Por ejemplo:
databricks bundle generate app --existing-app-name hello-world-app
Después de haber generado la configuración de la aplicación en el paquete, use el comando databricks bundle bind para mantener la aplicación del área de trabajo y el paquete sincronizados.
Para obtener más información sobre databricks bundle generate y databricks bundle bind, vea grupo bundle de comandos.
Desarrollo y depuración de la aplicación localmente
A continuación, continúe desarrollando la aplicación localmente. Inicie y depure la aplicación mediante el databricks apps run-local comando . Este comando inicia un proxy de aplicación que se utiliza para redirigir las solicitudes a la aplicación misma e inserta los encabezados necesarios relacionados con la aplicación de Databricks.
Para instalar todas las dependencias, preparar el entorno virtual e iniciar la aplicación y el depurador, use el comando
run-localcon las opciones--prepare-environmenty--debug.databricks apps run-local --prepare-environment --debugEste comando usa
uvpara preparar el entorno virtual y el depurador se basa endebugpy.Vaya a
http://localhost:8001para ver la aplicación.Establezca puntos de interrupción para depurar la aplicación. En Visual Studio Code, instale el depurador de Python y, después, seleccione Ejecutar>Iniciar depuración y, después, Conexión remota.
El proxy se inicia en el puerto 5678, pero puede configurarlo mediante la
--portopción .
Implementación de la aplicación en el área de trabajo
Cuando esté listo para implementar la aplicación en el área de trabajo, agregue la configuración de agrupación que crea la aplicación y, a continuación, implemente la agrupación.
Cree un archivo
databricks.ymlen la raíz del proyecto de aplicación. La CLI de Databricks reconoce una carpeta con undatabricks.ymlarchivo en su raíz como una agrupación, lo que permite comandos de agrupación de databricks.Copie y pegue el siguiente código YAML en el archivo
databricks.yml, sustituyendo los valores de espacio de trabajo y nombre de usuario de marcador de posición por los suyos propios.bundle: name: hello_world_bundle resources: apps: hello_world_app: name: 'hello-world-app' source_code_path: . # This assumes the app source code is at the root of the project. description: 'A Databricks app' targets: dev: mode: development default: true workspace: host: https://myworkspace.cloud.databricks.com prod: mode: production workspace: host: https://myworkspace.cloud.databricks.com root_path: /Workspace/Users/someone@example.com/.bundle/${bundle.name}/${bundle.target} permissions: - user_name: someone@example.com level: CAN_MANAGEValide y luego implemente el paquete. De forma predeterminada, esto crea la aplicación y el paquete en el objetivo
devdel área de trabajo.databricks bundle validate databricks bundle deployLa implementación de un paquete no implica que la aplicación se implemente automáticamente en computación. Para implementar la aplicación, use la interfaz de usuario (desde la página de la aplicación en el área de trabajo de Databricks) o la CLI de Databricks (
databricks apps deploy). Consulte Implementación de una aplicación de Databricks.Use el
bundle summarycomando para recuperar información sobre la aplicación implementada:databricks bundle summaryName: hello_world_bundle Target: dev Workspace: Host: https://myworkspace.cloud.databricks.com User: someone@example.com Path: /Workspace/Users/someone@example.com/.bundle/hello_world_bundle/dev Resources: Apps: hello_world_app: Name: hello-world-app URL: https://myworkspace.cloud.databricks.com/apps/hello-world-app?o=8498204313176880
Desarrollo, prueba, iteración
Continúe realizando cambios en la aplicación localmente y vuelva a implementar la agrupación para actualizar la aplicación en el área de trabajo. Durante las pruebas, es posible que quiera configurar los permisos de uso para la aplicación para otros usuarios en el área de trabajo de Azure Databricks, lo que puede hacer especificando permisos:
resources:
apps:
hello_world_app:
name: 'hello-world-app'
source_code_path: . # This assumes the app source code is at the root of the project.
description: 'A Databricks app'
permissions:
- level: CAN_USE
group_name: users
Para iniciar la aplicación en el área de trabajo, ejecute la aplicación en la agrupación especificando la clave de recurso para la aplicación en el comando :
databricks bundle run hello_world_app
Implementación en producción
Databricks recomienda usar un principal de servicio para la autenticación en producción. Cuando esté listo para que la aplicación esté disponible en producción, actualice la configuración del paquete para usar una entidad de servicio y, a continuación, implemente el paquete en el área de trabajo de producción de destino. Para obtener información sobre las entidades de servicio, consulte Entidades de servicio para CI/CD.
Modificación de la agrupación para usar una entidad de servicio
Antes de realizar la implementación en producción, configure una concesión en el paquete que concede permiso a un principal de servicio. Puede configurar la concesión cuando se crea la aplicación o cuando se ejecuta la agrupación.
Para conceder permiso a la entidad de servicio cuando se crea la aplicación en el despliegue del paquete, modifique el paquete databricks.yml para definir una concesión para la aplicación. Use una sustitución de paquete para asignar el principal de servicio:
bundle:
name: hello_world_bundle
resources:
apps:
hello_world_app:
name: 'hello-world-app'
source_code_path: . # This assumes the app source code is at the root of the project.
description: 'A Databricks app'
schemas:
my_schema:
name: my_schema
grants:
# highlight-next-line
- principal: '${resources.apps.hello_world_app.service_principal_client_id}'
privileges:
- CREATE_TABLE
catalog_name: main
targets:
dev:
mode: development
default: true
workspace:
host: https://myworkspace.cloud.databricks.com
prod:
mode: production
workspace:
host: https://myworkspace.cloud.databricks.com
root_path: /Workspace/Users/someone@example.com/.bundle/${bundle.name}/${bundle.target}
permissions:
- user_name: someone@example.com
level: CAN_MANAGE
Como alternativa, defina un trabajo en la agrupación que configure una concesión cuando se ejecute la agrupación:
Agregue un cuaderno llamado
grant_notebook.ipynbcon el siguiente contenido en una celda. Reemplace<schema-name>por un nombre de usuario de administrador.app_service_principal = dbutils.widgets.get("app_service_principal") spark.sql(f"GRANT ALL PRIVILEGES ON SCHEMA <schema-name> TO `{app_service_principal}`")Defina un trabajo en el
databricks.ymldel paquete para ejecutar un notebook digital que conceda permiso al principal de servicio. Use sustituciones de agrupación para asignar el valor de la entidad de servicio:bundle: name: hello_world_bundle resources: apps: hello_world_app: name: 'hello-world-app' source_code_path: . # This assumes the app source code is at the root of the project. description: 'A Databricks app' jobs: grant_job: name: 'grant-job' parameters: - name: app_service_principal # highlight-next-line default: '${resources.apps.hello_world_app.service_principal_client_id}' tasks: - task_key: setup_grants notebook_task: notebook_path: ./grant_notebook.ipynb targets: dev: mode: development default: true workspace: host: https://myworkspace.cloud.databricks.com prod: mode: production workspace: host: https://myworkspace.cloud.databricks.com root_path: /Workspace/Users/someone@example.com/.bundle/${bundle.name}/${bundle.target} permissions: - user_name: someone@example.com level: CAN_MANAGE
Despliega el paquete actualizado
Ahora implemente la agrupación en el área de trabajo de producción y ejecute la aplicación:
databricks bundle deploy -t prod
databricks bundle run grant_job -t prod # (Optional) Run this if the grant is configured with a job
databricks bundle run hello_world_app -t prod