Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A Databricks Apps segítségével biztonságos adatokat és AI-alkalmazásokat hozhat létre a Databricks platformon, amelyeket egyszerűen megoszthat a felhasználókkal. Az alkalmazások üzembe helyezését a Databricks Asset Bundles használatával kezelheti. További információ az alkalmazásokról és csomagokról: Databricks Apps and What are Databricks Asset Bundles?.
Ez a cikk végigvezeti egy Databricks-alkalmazás helyi fejlesztésén, majd konfigurál egy csomagot az alkalmazás Databricks-munkaterületre történő üzembe helyezésének kezeléséhez a Databricks Eszközcsomagok használatával.
Jótanács
Ha streamlit alkalmazással szeretne inicializálni egy példacsomagot, használja a streamlit-app kötegsablont a bundle init következő paranccsal:
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
Követelmények
- A Databricks-munkaterületnek és a helyi fejlesztési környezetnek meg kell felelnie a Databricks Apps követelményeinek. Lásd : Databricks Apps-munkaterület és fejlesztési környezet beállítása.
- A Databricks CLI 0.250.0-s vagy újabb verziója. A Databricks parancssori felület telepített verziójának ellenőrzéséhez futtassa a parancsot
databricks -v. A Databricks parancssori felületének telepítéséhez lásd a Databricks parancssori felület telepítését vagy frissítését.
Alkalmazás helyi létrehozása
Először hozzon létre egy Databricks-alkalmazást. Az alkalmazásokat a Pythonban fejlesztették ki olyan népszerű keretrendszerek használatával, mint például a Dash vagy a Gradio. A Databricks-alkalmazásokat helyileg is létrehozhatja az alapoktól, létrehozhat egyet a Databricks-munkaterületen, majd szinkronizálhatja a fájlokat a helyi gépére, vagy lekérhet egy Databricks-mintaalkalmazást a GitHubról.
Alkalmazás létrehozása az alapoktól:
Kövesse a keretrendszer gyors üzembe helyezési oktatóanyagát:
Adjon hozzá egy
app.yamlfájlt a projekt gyökeréhez a fő Python-alkalmazás futtatásának meghatározásához. Például:Streamlit-alkalmazás esetén:
command: ['streamlit', 'run', 'app.py']Vagy Dash-alkalmazás esetén:
command: ['python', 'app.py']
Alkalmazás létrehozása a munkaterületen és helyi szinkronizálás:
A Databricks Apps használatának első lépéseit követve hozzon létre egy alkalmazást a felhasználói felületen.
Hozzon létre egy helyi könyvtárat az alkalmazáshoz, és lépjen be
cdabba:mkdir hello-world-app cd hello-world-appSzinkronizálja az alkalmazásfájlokat helyileg. A parancsot átmásolhatja a
databricks workspace export-dirmunkaterület felhasználói felületén található alkalmazástelepítési lapról, és futtathatja a parancssorban. Például:databricks workspace export-dir /Workspace/Users/someone@example.com/databricks_apps/hello-world_2025_05_09-17_43/hello-world-app .Ez letölti a munkaterület könyvtárában lévő alkalmazásfájlokat a
hello-world-apphelyi gép könyvtárába.
Databricks-mintaalkalmazás lekérése a GitHubról:
Klónozza a Databricks-alkalmazássablonokat a GitHub-adattárban:
git clone https://github.com/databricks/app-templatesVálasszon egy mintaalkalmazást egyszerű alkalmazásprojektként.
Meglévő alkalmazás hozzáadása meglévő csomaghoz
Ha a munkaterületen van egy Databricks-alkalmazás, és van egy meglévő csomagja, amelyhez hozzá szeretné adni az alkalmazást, használhatja a databricks bundle generate app parancsot. Ez a parancs létrehoz egy konfigurációs fájlt az alkalmazáshoz, letölti az alkalmazás összes forráskódfájlját, és hozzáadja őket a csomaghoz. Például:
databricks bundle generate app --existing-app-name hello-world-app
Miután létrehozta az alkalmazáskonfigurációt a csomagban, a databricks bundle bind paranccsal tartsa szinkronban az alkalmazást a munkaterületen és a csomagban.
További információkért a databricks bundle generate és databricks bundle bind című kérje meg a bundle parancscsoportot.
Az alkalmazás helyi fejlesztése és hibakeresése
Ezután folytassa az alkalmazás helyi fejlesztését. Indítsa el és hibakeresse meg az alkalmazást a databricks apps run-local paranccsal. Ez a parancs elindít egy alkalmazásproxyt, amely az alkalmazásnak küldött kérelmek proxyzására szolgál, és a szükséges Databricks-alkalmazásfejléceket injektálja.
Az összes függőség telepítéséhez készítse elő a virtuális környezetet, és indítsa el az alkalmazást és a hibakeresőt, használja a
run-localparancsot a--prepare-environment--debugkövetkező beállításokkal:databricks apps run-local --prepare-environment --debugEz a parancs a
uv-t használja a virtuális környezet előkészítésére, a hibakereső pedig adebugpyalapján működik.Navigáljon az
http://localhost:8001alkalmazás megtekintéséhez.Állítson be töréspontokat az alkalmazás hibakereséséhez. A Visual Studio Code-ban telepítse a Python hibakeresőt, majd válassza aHibakeresés indítása, majd a >.
A proxy az 5678-os porton kezdődik, de a beállítással
--portkonfigurálhatja.
Az alkalmazás üzembe helyezése a munkaterületen
Ha készen áll az alkalmazás munkaterületen való üzembe helyezésére, adja hozzá az alkalmazást létrehozó csomagkonfigurációt, majd telepítse a csomagot.
Hozzon létre egy fájlt
databricks.ymlaz alkalmazásprojekt gyökerénél. A Databricks parancssori felülete csomagként ismer fel egydatabricks.ymlfájlt tartalmazó mappát, amely lehetővé teszi a Databricks-csomagparancsok használatát.Másolja és illessze be a következő YAML fájlt a
databricks.ymlfájlba, majd helyettesítse a helyőrző "munkaterület" és "felhasználónév" értékeket a saját értékeivel.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_MANAGEEllenőrizze, majd telepítse a csomagot. Alapértelmezés szerint ez létrehozza az alkalmazást és a csomagot a
devmunkaterületen lévő célban.databricks bundle validate databricks bundle deployA csomag üzembe helyezése nem telepíti automatikusan az alkalmazást a számításhoz. Az alkalmazás üzembe helyezéséhez használja a felhasználói felületet (az alkalmazás lapjáról a Databricks-munkaterületen) vagy a Databricks parancssori felületét (
databricks apps deploy). Lásd : Databricks-alkalmazás üzembe helyezése.bundle summaryA paranccsal lekérheti az üzembe helyezett alkalmazással kapcsolatos információkat: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
Fejlesztés, tesztelés, iteráció
Folytassa az alkalmazás helyi módosítását, majd helyezze újra üzembe a csomagot, hogy frissítse az alkalmazást a munkaterületen. A tesztelés során érdemes lehet konfigurálni az alkalmazás használati engedélyeit más felhasználók számára az Azure Databricks-munkaterületen, amelyet az engedélyek megadásával tehet meg:
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
Az alkalmazás a munkaterületen való elindításához futtassa az alkalmazást a csomagban az alkalmazás erőforráskulcsának a parancsban való megadásával:
databricks bundle run hello_world_app
Éles környezetbe telepítés
A Databricks szolgáltatás főfelhasználójának használatát javasolja az éles környezetben végzett hitelesítéshez. Ha készen áll arra, hogy az alkalmazást éles környezetben elérhetővé tegye, frissítse a csomagkonfigurációt egy szolgáltatásnév használatára, majd helyezze üzembe a csomagot a cél éles munkaterületen. A szolgáltatásnevekről további információt a CI/CD szolgáltatásnevekben talál.
Csomag módosítása szolgáltatásnév használatára
Az éles környezetben való üzembe helyezés előtt konfiguráljon egy engedélyt a csomagban, amely engedélyt ad egy szolgáltatási fióknak. A támogatás konfigurálható az alkalmazás létrehozásakor vagy a csomag futtatásakor.
A szolgáltatásnév engedélyének megadásához, amikor az alkalmazás a csomag üzembe helyezésekor jön létre, módosítsa a csomag databricks.yml-ját, hogy engedélyt hozzon létre az alkalmazás számára. A szolgáltatásnév hozzárendeléséhez használjon csomaghelyettesítést:
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
Másik lehetőségként definiáljon egy feladatot a csomagban, amely a csomag futtatásakor konfigurál egy támogatást:
Hozzon létre egy jegyzetfüzetet
grant_notebook.ipynbnéven, amelynek tartalma a következő egy cellában. Cserélje le<schema-name>egy rendszergazdai felhasználónévre.app_service_principal = dbutils.widgets.get("app_service_principal") spark.sql(f"GRANT ALL PRIVILEGES ON SCHEMA <schema-name> TO `{app_service_principal}`")Határozzon meg egy munkát a csomagban
databricks.yml, amely futtat egy jegyzetfüzetet, hogy engedélyt adjon a szolgáltatási főfelhasználónak. A szolgáltatásazonosító értékének hozzárendeléséhez használjon csomaghelyettesítést.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
A frissített csomag üzembe helyezése
Most helyezze üzembe a csomagot az éles munkaterületen, és futtassa az alkalmazást:
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