Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aplikasi Databricks memungkinkan Anda membuat data dan aplikasi AI yang aman di platform Databricks yang dapat Anda bagikan dengan mudah kepada pengguna. Anda dapat mengelola penyebaran aplikasi menggunakan Bundel Otomatisasi Deklaratif. Untuk informasi selengkapnya tentang aplikasi dan bundel, lihat Aplikasi Databricks dan Apa itu Bundel Otomatisasi Deklaratif?.
Artikel ini memandu Anda mengembangkan aplikasi Databricks secara lokal, lalu mengonfigurasi bundel untuk mengelola penyebaran aplikasi ke ruang kerja Databricks menggunakan Bundel Otomatisasi Deklaratif.
Petunjuk / Saran
Untuk menginisialisasi contoh bundel dengan aplikasi Streamlit, gunakan templat bundel streamlit-app dengan bundle init perintah :
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
Persyaratan
- Ruang kerja Databricks dan lingkungan pengembangan lokal Anda harus memenuhi persyaratan untuk Aplikasi Databricks. Lihat Menyiapkan ruang kerja dan lingkungan pengembangan Databricks Apps Anda.
- Databricks CLI versi 0.250.0 atau lebih tinggi. Untuk memeriksa versi Databricks CLI yang diinstal, jalankan perintah
databricks -v. Untuk menginstal Databricks CLI, lihat Menginstal atau memperbarui Databricks CLI.
Membuat aplikasi secara lokal
Pertama, buat aplikasi Databricks. Aplikasi dikembangkan dalam Python menggunakan kerangka kerja populer, seperti Dash atau Gradio. Anda dapat membuat aplikasi Databricks secara lokal dari awal, membuatnya di ruang kerja Databricks lalu menyinkronkan file ke komputer lokal Anda, atau mendapatkan aplikasi sampel Databricks dari GitHub.
Untuk membuat aplikasi dari awal:
Ikuti tutorial mulai cepat untuk kerangka kerja:
Tambahkan file
app.yamlke akar proyek Anda untuk menentukan cara menjalankan aplikasi Python utama Anda. Contohnya:Untuk aplikasi Streamlit:
command: ['streamlit', 'run', 'app.py']Atau untuk aplikasi Dash:
command: ['python', 'app.py']
Untuk membuat aplikasi di ruang kerja dan menyinkronkannya secara lokal:
Ikuti langkah-langkah di Mulai menggunakan Aplikasi Databricks untuk membuat aplikasi di UI.
Buat direktori lokal untuk aplikasi dan
cdke dalamnya:mkdir hello-world-app cd hello-world-appSinkronkan file aplikasi secara lokal. Anda dapat menyalin
databricks workspace export-dirperintah dari halaman penginstalan aplikasi di antarmuka pengguna ruang kerja dan menjalankannya di baris perintah Anda. Contohnya:databricks workspace export-dir /Workspace/Users/someone@example.com/databricks_apps/hello-world_2025_05_09-17_43/hello-world-app .Ini mengunduh file aplikasi di direktori ruang kerja ke
hello-world-appdirektori di komputer lokal Anda.
Untuk mendapatkan aplikasi sampel Databricks dari GitHub:
Kloning templat Databricks app GitHub repositori:
git clone https://github.com/databricks/app-templatesPilih salah satu aplikasi sampel sebagai proyek aplikasi sederhana.
Menambahkan aplikasi yang sudah ada ke bundel yang sudah ada
Jika Anda memiliki aplikasi Databricks di ruang kerja Anda, dan memiliki bundel yang sudah ada yang ingin Anda tambahkan aplikasinya, Anda dapat menggunakan perintah .databricks bundle generate app Perintah ini menghasilkan file konfigurasi untuk aplikasi dan mengunduh semua file kode sumber untuk aplikasi, dan menambahkannya ke bundel Anda. Contohnya:
databricks bundle generate app --existing-app-name hello-world-app
Setelah Anda membuat konfigurasi aplikasi di dalam bundel, gunakan perintah databricks bundle bind untuk menjaga agar aplikasi dan bundel tetap sinkron di ruang kerja.
Untuk informasi selengkapnya tentang databricks bundle generate dan databricks bundle bind, lihat bundle grup perintah.
Mengembangkan dan men-debug aplikasi secara lokal
Selanjutnya, lanjutkan mengembangkan aplikasi Anda secara lokal. Luncurkan dan debug aplikasi menggunakan databricks apps run-local perintah . Perintah ini memulai proksi aplikasi yang digunakan untuk memproksi permintaan ke aplikasi itu sendiri dan menyuntikkan header terkait aplikasi Databricks yang diperlukan.
Untuk menginstal semua dependensi, menyiapkan lingkungan virtual, dan memulai aplikasi serta debugger, gunakan perintah
run-localdengan opsi-opsi--prepare-environmentdan--debug.databricks apps run-local --prepare-environment --debugPerintah ini menggunakan
uvuntuk menyiapkan lingkungan virtual dan debugger didasarkan padadebugpy.Navigasikan ke
http://localhost:8001untuk melihat aplikasi Anda.Atur titik henti untuk men-debug aplikasi Anda. Di Visual Studio Code, lakukan instalasi debugger Python, kemudian pilih Run>Mulai Debugging dan kemudian Penautan Jarak Jauh.
Proksi dimulai pada port 5678, tetapi Anda dapat mengonfigurasinya menggunakan
--portopsi .
Menyebarkan aplikasi ke ruang kerja
Saat Anda siap untuk menyebarkan aplikasi ke ruang kerja, tambahkan konfigurasi bundel yang membuat aplikasi, lalu sebarkan bundel.
Buat file
databricks.ymldi akar proyek aplikasi Anda. CLI Databricks mengenali folder dengan filedatabricks.ymldi akar foldernya sebagai bundel, yang memungkinkan perintah bundel Databricks.Salin dan tempel YAML berikut ke
databricks.ymldalam file, menggantikan ruang kerja tempat penampung dan nilai nama pengguna untuk Anda sendiri: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_MANAGEValidasi, lalu terapkan bundel. Secara default, ini membuat aplikasi dan bundel di target
devdalam ruang kerja.databricks bundle validate databricks bundle deployMenyebarkan bundel tidak secara otomatis menyebarkan aplikasi untuk menghitung. Untuk menyebarkan aplikasi, gunakan UI (dari halaman aplikasi di ruang kerja Databricks) atau Databricks CLI (
databricks apps deploy). Lihat Menyebarkan aplikasi Databricks.bundle summaryGunakan perintah untuk mengambil informasi tentang aplikasi yang disebarkan: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
Mengembangkan, menguji, melakukan iterasi
Terus buat perubahan pada aplikasi Anda secara lokal, lalu sebarkan ulang bundel untuk memperbarui aplikasi di ruang kerja. Selama pengujian, Anda mungkin ingin mengonfigurasi izin penggunaan untuk aplikasi untuk pengguna lain di ruang kerja Azure Databricks Anda, yang dapat Anda lakukan dengan izin spesifikasi:
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
Untuk memulai aplikasi di ruang kerja, jalankan aplikasi di bundel dengan menentukan kunci sumber daya untuk aplikasi dalam perintah:
databricks bundle run hello_world_app
Menyebarkan ke lingkungan produksi
Databricks merekomendasikan penggunaan service principal untuk autentikasi dalam produksi. Saat Anda siap untuk membuat aplikasi tersedia untuk produksi, perbarui konfigurasi bundel Anda untuk menggunakan prinsipal layanan, lalu sebarkan bundel ke ruang kerja produksi target Anda. Untuk informasi tentang prinsipal layanan, lihat Prinsipal layanan untuk CI/CD.
Modifikasi bundel untuk menggunakan prinsipal layanan
Sebelum menyebarkan ke produksi, konfigurasikan izin dalam bundel yang memberikan hak akses kepada prinsipal layanan. Anda dapat mengonfigurasi pemberian saat aplikasi dibuat atau saat bundel dijalankan.
Untuk memberikan izin kepada perwakilan layanan saat aplikasi dibuat dalam proses penyebaran bundel, ubah konfigurasi bundel databricks.yml untuk menentukan izin aplikasi. Gunakan penggantian bundel untuk menetapkan prinsipal layanan.
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
Atau, tentukan pekerjaan dalam bundel yang mengonfigurasi hibah saat bundel dijalankan:
Tambahkan buku catatan yang dipanggil
grant_notebook.ipynbdengan konten berikut dalam sel. Ganti<schema-name>dengan nama pengguna admin.app_service_principal = dbutils.widgets.get("app_service_principal") spark.sql(f"GRANT ALL PRIVILEGES ON SCHEMA <schema-name> TO `{app_service_principal}`")Tentukan pekerjaan di dalam bundel
databricks.ymluntuk menjalankan notebook yang memberikan izin kepada prinsipal layanan. Gunakan substitusi bundel untuk menetapkan nilai prinsipal layanan.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
Menyebarkan bundel yang diperbarui
Sekarang sebarkan bundel ke ruang kerja produksi dan jalankan aplikasi:
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