Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Databricks Apps umožňuje vytvářet zabezpečené aplikace a aplikace umělé inteligence na platformě Databricks, které můžete snadno sdílet s uživateli. Nasazení aplikací můžete spravovat pomocí deklarativních balíčků automatizace. Další informace o aplikacích a sadách najdete v tématu Databricks Apps a co jsou sady deklarativní automatizace?
Tato stránka vás provede místním vývojem aplikace Databricks a následnou konfigurací sady pro správu nasazení aplikace do pracovního prostoru Databricks pomocí prostředků deklarativní automatizace.
Návod
K inicializaci ukázkové sady s aplikací Streamlit použijte šablonu sady streamlit-app s příkazem bundle init :
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
Požadavky
- Váš pracovní prostor Databricks a místní vývojové prostředí musí splňovat požadavky pro Databricks Apps. Viz Nastavení pracovního prostoru Databricks Apps a vývojového prostředí.
- Databricks CLI verze 0.250.0 nebo vyšší. Pokud chcete zkontrolovat nainstalovanou verzi rozhraní příkazového řádku Databricks, spusťte příkaz
databricks -v. Pokud chcete nainstalovat rozhraní příkazového řádku Databricks, přečtěte si téma Instalace nebo aktualizace rozhraní příkazového řádku Databricks.
Vytvořit aplikaci lokálně
Nejprve vytvořte aplikaci Databricks. Aplikace se vyvíjejí v Python pomocí oblíbených architektur, jako jsou Dash nebo Gradio. Aplikaci Databricks můžete vytvořit místně od začátku, vytvořit ji v pracovním prostoru Databricks a pak synchronizovat soubory s místním počítačem nebo získat ukázkovou aplikaci Databricks z GitHub.
Vytvoření zcela nové aplikace:
Postupujte podle rychlého úvodního kurzu pro architekturu:
Do kořenového adresáře projektu přidejte soubor
app.yaml, který definuje, jak spustit hlavní Python aplikaci. Například:Pro aplikaci Streamlit:
command: ['streamlit', 'run', 'app.py']Nebo pro aplikaci Dash:
command: ['python', 'app.py']
Vytvoření aplikace v pracovním prostoru a jeho místní synchronizace:
Postupujte podle pokynů v tématu Začínáme s Aplikacemi Databricks a vytvořte aplikaci v uživatelském rozhraní.
Vytvořte pro aplikaci místní adresář a vstupte do něj:
mkdir hello-world-app cd hello-world-appSynchronizujte soubory aplikace místně. Příkaz můžete zkopírovat
databricks workspace export-dirze stránky instalace aplikace v uživatelském rozhraní pracovního prostoru a spustit ho na příkazovém řádku. Například:databricks workspace export-dir /Workspace/Users/someone@example.com/databricks_apps/hello-world_2025_05_09-17_43/hello-world-app .Tím se soubory aplikace v adresáři pracovního prostoru stáhnou do
hello-world-appadresáře na místním počítači.
Získání ukázkové aplikace Databricks z GitHub:
Naklonujte šablony aplikace Databricks GitHub úložiště:
git clone https://github.com/databricks/app-templatesVyberte jednu z ukázkových aplikací jako jednoduchý projekt aplikace.
Přidání existující aplikace do existující sady
Pokud máte ve svém pracovním prostoru aplikaci Databricks a máte existující sadu, do které chcete aplikaci přidat, můžete použít databricks bundle generate app tento příkaz. Tento příkaz vygeneruje konfigurační soubor aplikace a stáhne všechny soubory zdrojového kódu aplikace a přidá je do vaší sady. Například:
databricks bundle generate app --existing-app-name hello-world-app
Jakmile vygenerujete konfiguraci aplikace ve vašem balíčku, použijte příkaz databricks bundle bind k udržení aplikace v pracovním prostoru a balíčku v synchronizaci.
Další informace o databricks bundle generate a databricks bundle bind naleznete ve skupině příkazů bundle.
Místní vývoj a ladění aplikace
Dále pokračujte v místním vývoji aplikace. Spusťte aplikaci a laděte ji pomocí příkazu databricks apps run-local. Tento příkaz inicializuje proxy aplikací, které se používají pro zprostředkování požadavků na aplikaci samotnou a vmísí potřebné hlavičky týkající se aplikace Databricks.
Pokud chcete nainstalovat všechny závislosti, připravit virtuální prostředí a spustit aplikaci a ladicí program, použijte příkaz
run-locals možnostmi--prepare-environmenta--debug.databricks apps run-local --prepare-environment --debugTento příkaz používá
uvk přípravě virtuálního prostředí a ladicí program je založen nadebugpy.Přejděte na
http://localhost:8001a zobrazte si aplikaci.Nastavte body přerušení pro ladění aplikace. V Visual Studio Code nainstalujte ladicí program Python, vyberte Run>Start Debugging a pak Remote Attach.
Proxy server se spustí na portu 5678, ale můžete ho nakonfigurovat pomocí této
--portmožnosti.
Nasazení aplikace do pracovního prostoru
Až budete připraveni nasadit aplikaci do pracovního prostoru, přidejte konfiguraci sady, která aplikaci vytvoří, a pak sadu nasaďte.
Vytvořte soubor
databricks.ymlv kořenovém adresáři projektu aplikace. Rozhraní příkazového řádku Databricks rozpozná složku se souboremdatabricks.ymlv kořenovém adresáři jako sadu, která umožňuje příkazy sady databricks.Zkopírujte a vložte do souboru následující YAML
databricks.ymla nahraďte zástupné hodnoty pracovního prostoru a uživatelského jména vlastními hodnotami: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_MANAGEOvěřte a poté nasaďte balíček. Ve výchozím nastavení se aplikace a balíček vytvoří v cíli
devv pracovním prostoru.databricks bundle validate databricks bundle deployNasazení sady automaticky nenasadí aplikaci do počítače. K nasazení aplikace použijte uživatelské rozhraní (ze stránky aplikace v pracovním prostoru Databricks) nebo Rozhraní příkazového řádku Databricks (
databricks apps deploy). Viz Nasazení aplikace Databricks.Pomocí příkazu načtěte
bundle summaryinformace o nasazené aplikaci: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
Vývoj, testování a iterace
Pokračujte v místním provádění změn aplikace a pak sadu znovu nasaďte, aby se aplikace aktualizovala v pracovním prostoru. Během testování můžete chtít nakonfigurovat oprávnění k používání aplikace pro ostatní uživatele v pracovním prostoru Azure Databricks, což můžete udělat určením oprávnění:
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
Pokud chcete spustit aplikaci v pracovním prostoru, spusťte ji v rámci balíčku určením klíče prostředku pro aplikaci v příkazu:
databricks bundle run hello_world_app
Nasazení do produkčního prostředí
Databricks doporučuje pro ověřování v produkčním prostředí použít hlavní službu. Až budete připraveni aplikaci zpřístupnit v produkčním prostředí, aktualizujte konfiguraci sady tak, aby používala instanční objekt, a pak tuto sadu nasaďte do cílového produkčního pracovního prostoru. Informace o služebních principalech najdete v tématu Služební principály pro CI/CD.
Úprava sady pro použití instančního objektu
Před nasazením do produkčního prostředí nakonfigurujte grant v balíčku, který dává oprávnění aplikačnímu objektu. Můžete nakonfigurovat oprávnění při vytvoření aplikace nebo při spuštění balíčku.
Pro udělení oprávnění služebnímu hlavnímu objektu při vytvoření aplikace při nasazení balíčku upravte balíček databricks.yml tak, aby definoval udělení oprávnění aplikaci. K přiřazení instančního objektu použijte náhradu sady:
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
Alternativně definujte úlohu v sadě, která při spuštění sady konfiguruje grant:
Přidejte do buňky poznámkový blok
grant_notebook.ipynbs následujícím obsahem. Nahraďte<schema-name>uživatelským jménem správce.app_service_principal = dbutils.widgets.get("app_service_principal") spark.sql(f"GRANT ALL PRIVILEGES ON SCHEMA <schema-name> TO `{app_service_principal}`")Definujte úlohu v balíčku
databricks.ymlpro spuštění notebooku, který uděluje oprávnění služební identitě. Použijte náhrady balíčku k přiřazení hodnoty service principal: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
Nasazení aktualizované sady
Teď nasaďte sadu do produkčního pracovního prostoru a spusťte aplikaci:
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