Konfigurasi Bundel Aset Databricks
Artikel ini menguraikan sintaks untuk file konfigurasi Bundel Aset Databricks, yang menentukan Bundel Aset Databricks. Lihat Apa itu Bundel Aset Databricks?
Untuk membuat dan bekerja dengan bundel, lihat pengembangan Bundel Aset Databricks .
Gambaran umum
File konfigurasi bundel harus dinyatakan dalam format YAML dan harus berisi minimal pemetaan bundel tingkat atas. Setiap bundel harus berisi minimal satu (dan hanya satu) file konfigurasi bundel bernama databricks.yml
. Jika ada beberapa file konfigurasi bundel, file tersebut harus dirujuk oleh databricks.yml
file menggunakan include
pemetaan.
Untuk detail tentang setiap pemetaan tingkat atas, lihat Pemetaan .
Untuk informasi selengkapnya tentang YAML, lihat spesifikasi dan tutorial YAML resmi.
Spesifikasi
Spesifikasi YAML berikut menyediakan kunci konfigurasi tingkat atas untuk Bundel Aset Databricks. Untuk referensi konfigurasi, lihat referensi Konfigurasi .
# This is the default bundle configuration if not otherwise overridden in
# the "targets" top-level mapping.
bundle: # Required.
name: string # Required.
databricks_cli_version: string
cluster_id: string
git:
origin_url: string
branch: string
# These are for any custom variables for use throughout the bundle.
variables:
<some-unique-variable-name>:
description: string
default: string or complex
# These are the default workspace settings if not otherwise overridden in
# the following "targets" top-level mapping.
workspace:
artifact_path: string
auth_type: string
azure_client_id: string # For Azure Databricks only.
azure_environment: string # For Azure Databricks only.
azure_login_app_id: string # For Azure Databricks only. Non-operational and reserved for future use.
azure_tenant_id: string # For Azure Databricks only.
azure_use_msi: true | false # For Azure Databricks only.
azure_workspace_resource_id: string # For Azure Databricks only.
client_id: string # For Databricks on AWS only.
file_path: string
google_service_account: string # For Databricks on Google Cloud only.
host: string
profile: string
root_path: string
state_path: string
# These are the permissions to apply to experiments, jobs, models, and pipelines defined
# in the "resources" mapping.
permissions:
- level: <permission-level>
group_name: <unique-group-name>
- level: <permission-level>
user_name: <unique-user-name>
- level: <permission-level>
service_principal_name: <unique-principal-name>
# These are the default artifact settings if not otherwise overridden in
# the following "targets" top-level mapping.
artifacts:
<some-unique-artifact-identifier>:
build: string
files:
- source: string
path: string
type: string
# These are any additional configuration files to include.
include:
- "<some-file-or-path-glob-to-include>"
- "<another-file-or-path-glob-to-include>"
# This is the identity to use to run the bundle
run_as:
- user_name: <user-name>
- service_principal_name: <service-principal-name>
# These are the default job and pipeline settings if not otherwise overridden in
# the following "targets" top-level mapping.
resources:
clusters:
<some-unique-programmatic-identifier-for-this-cluster>:
# See the REST API create request payload reference for clusters.
dashboards:
<some-unique-programmatic-identifier-for-this-dashboard>:
# See the REST API create request payload reference for dashboards.
experiments:
<some-unique-programmatic-identifier-for-this-experiment>:
# See the REST API create request payload reference for experiments.
jobs:
<some-unique-programmatic-identifier-for-this-job>:
# See REST API create request payload reference for jobs.
models:
<some-unique-programmatic-identifier-for-this-model>:
# See the REST API create request payload reference for models.
pipelines:
<some-unique-programmatic-identifier-for-this-pipeline>:
# See the REST API create request payload reference for Delta Live Tables (pipelines).
schemas:
<some-unique-programmatic-identifier-for-this-schema>:
# See the Unity Catalog schema request payload reference.
volumes:
<some-unique-programmatic-identifier-for-this-volume>:
# See the Unity Catalog volume request payload reference.
# These are any additional files or paths to include or exclude.
sync:
include:
- "<some-file-or-path-glob-to-include>"
- "<another-file-or-path-glob-to-include>"
exclude:
- "<some-file-or-path-glob-to-exclude>"
- "<another-file-or-path-glob-to-exclude>"
paths:
- "<some-file-or-path-to-synchronize>"
# These are the targets to use for deployments and workflow runs. One and only one of these
# targets can be set to "default: true".
targets:
<some-unique-programmatic-identifier-for-this-target>:
artifacts:
# See the preceding "artifacts" syntax.
bundle:
# See the preceding "bundle" syntax.
cluster_id: string
default: true | false
mode: development
presets:
<preset>: <value>
resources:
# See the preceding "resources" syntax.
sync:
# See the preceding "sync" syntax.
variables:
<preceding-unique-variable-name>: <non-default-value>
workspace:
# See the preceding "workspace" syntax.
run_as:
# See the preceding "run_as" syntax.
Contoh
Catatan
Untuk contoh konfigurasi yang menunjukkan fitur bundel dan kasus penggunaan bundel umum, lihat Contoh konfigurasi bundel dan repositori contoh bundel di GitHub.
Contoh konfigurasi bundel berikut menentukan file lokal bernama hello.py
yang berada di direktori yang sama dengan file konfigurasi bundel lokal bernama databricks.yml
. Ini menjalankan notebook ini sebagai pekerjaan menggunakan kluster jarak jauh dengan ID kluster yang ditentukan. URL ruang kerja jarak jauh dan kredensial autentikasi ruang kerja dibaca dari profil konfigurasi lokal penelepon bernama DEFAULT
.
Databricks merekomendasikan agar Anda menggunakan host
pemetaan alih-alih default
pemetaan sedapat mungkin, karena ini membuat file konfigurasi bundel Anda lebih portabel.
host
Mengatur pemetaan menginstruksikan Databricks CLI untuk menemukan profil yang cocok dalam file Anda .databrickscfg
lalu menggunakan bidang profil tersebut untuk menentukan jenis autentikasi Databricks mana yang akan digunakan. Jika beberapa profil dengan bidang yang host
cocok ada dalam file Anda .databrickscfg
, maka Anda harus menggunakan profile
untuk menginstruksikan Databricks CLI tentang profil tertentu mana yang akan digunakan. Misalnya, lihat prod
deklarasi target nanti di bagian ini.
Teknik ini memungkinkan Anda untuk menggunakan kembali serta mengambil alih definisi dan pengaturan pekerjaan dalam resources
blok:
bundle:
name: hello-bundle
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 1234-567890-abcde123
notebook_task:
notebook_path: ./hello.py
targets:
dev:
default: true
Meskipun file konfigurasi bundel berikut setara secara fungsional, file tersebut tidak dimodulir, yang tidak memungkinkan penggunaan kembali yang baik. Selain itu, deklarasi ini menambahkan tugas ke pekerjaan, bukan mengesampingkan pekerjaan yang ada:
bundle:
name: hello-bundle
targets:
dev:
default: true
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 1234-567890-abcde123
notebook_task:
notebook_path: ./hello.py
Contoh berikut menambahkan target dengan nama prod
yang menggunakan URL ruang kerja jarak jauh dan kredensial autentikasi ruang kerja yang berbeda, yang dibaca dari entri pencocokan .databrickscfg
file pemanggil host
dengan URL ruang kerja yang ditentukan. Pekerjaan ini menjalankan notebook yang sama tetapi menggunakan kluster jarak jauh yang berbeda dengan ID kluster yang ditentukan. Perhatikan bahwa Anda tidak perlu menyatakan notebook_task
pemetaan dalam prod
pemetaan, karena kembali menggunakan notebook_task
pemetaan dalam pemetaan tingkat resources
atas, jika notebook_task
pemetaan tidak secara eksplisit ditimpa dalam prod
pemetaan.
bundle:
name: hello-bundle
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 1234-567890-abcde123
notebook_task:
notebook_path: ./hello.py
targets:
dev:
default: true
prod:
workspace:
host: https://<production-workspace-url>
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 2345-678901-fabcd456
Untuk memvalidasi, menyebarkan, dan menjalankan pekerjaan ini dalam dev
target:
# Because the "dev" target is set to "default: true",
# you do not need to specify "-t dev":
databricks bundle validate
databricks bundle deploy
databricks bundle run hello_job
# But you can still explicitly specify it, if you want or need to:
databricks bundle validate
databricks bundle deploy -t dev
databricks bundle run -t dev hello_job
Untuk memvalidasi, menyebarkan, dan menjalankan pekerjaan ini dalam target sebagai gantinya prod
:
# You must specify "-t prod", because the "dev" target
# is already set to "default: true":
databricks bundle validate
databricks bundle deploy -t prod
databricks bundle run -t prod hello_job
Berikut ini adalah contoh sebelumnya tetapi dibagi menjadi file komponen untuk lebih banyak modularisasi dan penggunaan kembali yang lebih baik di beberapa file konfigurasi bundel. Teknik ini memungkinkan Anda untuk tidak hanya menggunakan kembali berbagai definisi dan pengaturan, tetapi Anda juga dapat menukar salah satu file ini dengan file lain yang memberikan deklarasi yang sama sekali berbeda:
databricks.yml
:
bundle:
name: hello-bundle
include:
- "bundle*.yml"
bundle.resources.yml
:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 1234-567890-abcde123
notebook_task:
notebook_path: ./hello.py
bundle.targets.yml
:
targets:
dev:
default: true
prod:
workspace:
host: https://<production-workspace-url>
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 2345-678901-fabcd456
Pemetaan
Bagian berikut menjelaskan sintaks file konfigurasi bundel, dengan pemetaan tingkat atas.
bundel
File konfigurasi bundel hanya boleh berisi satu pemetaan tingkat bundle
atas yang mengaitkan konten bundel dan pengaturan ruang kerja Azure Databricks.
Pemetaan ini bundle
harus berisi name
pemetaan yang menentukan nama terprogram (atau logis) untuk bundel. Contoh berikut mendeklarasikan bundel dengan nama hello-bundle
terprogram (atau logis).
bundle:
name: hello-bundle
bundle
Pemetaan juga dapat menjadi anak dari satu atau beberapa target dalam pemetaan target tingkat atas. Masing-masing pemetaan anak bundle
ini menentukan penggantian non-default pada tingkat target. Namun, nilai pemetaan bundle
tingkat name
atas tidak dapat ditimpa pada tingkat target.
cluster_id
Pemetaan bundle
dapat memiliki pemetaan anak cluster_id
. Pemetaan ini memungkinkan Anda menentukan ID kluster yang akan digunakan sebagai penimpaan untuk kluster yang ditentukan di tempat lain dalam file konfigurasi bundel. Untuk informasi tentang cara mengambil ID kluster, lihat URL dan ID kluster.
Penimpaan cluster_id
ditujukan untuk skenario khusus pengembangan dan hanya didukung untuk target yang pemetaannya mode
diatur ke development
. Untuk informasi selengkapnya tentang target
pemetaan, lihat target.
compute_id
Catatan
Pengaturan ini tidak digunakan lagi. Gunakan cluster_id sebagai gantinya.
Pemetaan bundle
dapat memiliki pemetaan anak compute_id
. Pemetaan ini memungkinkan Anda menentukan ID kluster yang akan digunakan sebagai penimpaan untuk kluster yang ditentukan di tempat lain dalam file konfigurasi bundel.
Git
Anda dapat mengambil dan mengambil alih detail kontrol versi Git yang terkait dengan bundel Anda. Ini berguna untuk menganotasi sumber daya yang Anda sebarkan. Misalnya, Anda mungkin ingin menyertakan URL asal repositori Anda dalam deskripsi model pembelajaran mesin yang Anda sebarkan.
Setiap kali Anda menjalankan bundle
perintah seperti validate
, deploy
atau run
, bundle
perintah mengisi pohon konfigurasi perintah dengan pengaturan default berikut:
-
bundle.git.origin_url
, yang mewakili URL asal repositori. Ini adalah nilai yang sama dengan yang akan Anda dapatkan jika Anda menjalankan perintahgit config --get remote.origin.url
dari repositori kloning Anda. Anda dapat menggunakan substitusi untuk merujuk ke nilai ini dengan file konfigurasi bundel Anda, sebagai${bundle.git.origin_url}
. -
bundle.git.branch
, yang mewakili cabang saat ini dalam repositori. Ini adalah nilai yang sama dengan yang akan Anda dapatkan jika Anda menjalankan perintahgit branch --show-current
dari repositori kloning Anda. Anda dapat menggunakan substitusi untuk merujuk ke nilai ini dengan file konfigurasi bundel Anda, sebagai${bundle.git.branch}
.
Untuk mengambil atau mengambil alih pengaturan Git, bundel Anda harus berada dalam direktori yang terkait dengan repositori Git, misalnya direktori lokal yang diinisialisasi dengan menjalankan git clone
perintah. Jika direktori tidak terkait dengan repositori Git, pengaturan Git ini kosong.
Anda dapat mengambil alih origin_url
pengaturan dan branch
dalam git
pemetaan pemetaan tingkat bundle
atas Anda jika diperlukan, sebagai berikut:
bundle:
git:
origin_url: <some-non-default-origin-url>
branch: <some-non-current-branch-name>
databricks_cli_version
Pemetaan bundle
dapat berisi databricks_cli_version
pemetaan yang membatasi versi Databricks CLI yang diperlukan oleh bundel. Ini dapat mencegah masalah yang disebabkan oleh penggunaan pemetaan yang tidak didukung dalam versi tertentu dari Databricks CLI.
Versi Databricks CLI sesuai dengan penerapan versi semantik dan databricks_cli_version
pemetaan mendukung penentuan batasan versi. Jika nilai saat ini databricks --version
tidak berada dalam batas yang ditentukan dalam pemetaan bundel databricks_cli_version
, kesalahan terjadi ketika databricks bundle validate
dijalankan pada bundel. Contoh berikut menunjukkan beberapa sintaks batasan versi umum:
bundle:
name: hello-bundle
databricks_cli_version: "0.218.0" # require Databricks CLI 0.218.0
bundle:
name: hello-bundle
databricks_cli_version: "0.218.*" # allow all patch versions of Databricks CLI 0.218
bundle:
name: my-bundle
databricks_cli_version: ">= 0.218.0" # allow any version of Databricks CLI 0.218.0 or higher
bundle:
name: my-bundle
databricks_cli_version: ">= 0.218.0, <= 1.0.0" # allow any Databricks CLI version between 0.218.0 and 1.0.0, inclusive
Variabel
File pengaturan bundel dapat berisi satu pemetaan tingkat variables
atas tempat variabel kustom ditentukan. Untuk setiap variabel, atur deskripsi opsional, nilai default, apakah variabel kustom adalah jenis kompleks, atau pencarian untuk mengambil nilai ID, menggunakan format berikut:
variables:
<variable-name>:
description: <variable-description>
default: <optional-default-value>
type: <optional-type-value> # "complex" is the only valid value
lookup:
<optional-object-type>: <optional-object-name>
Catatan
Variabel diasumsikan berjenis string
, kecuali type
diatur ke complex
. Lihat Menentukan variabel kompleks.
Untuk mereferensikan variabel kustom dalam konfigurasi bundel, gunakan substitusi ${var.<variable_name>}
.
Untuk informasi selengkapnya tentang variabel dan substitusi kustom, lihat Substitusi dan variabel dalam Bundel Aset Databricks.
Workspace
File konfigurasi bundel hanya dapat berisi satu pemetaan tingkat workspace
atas untuk menentukan pengaturan ruang kerja Azure Databricks non-default yang akan digunakan.
Penting
Jalur ruang kerja Databricks yang valid dimulai dengan /Workspace
atau /Volumes
. Jalur ruang kerja kustom secara otomatis diawali dengan /Workspace
, jadi jika Anda menggunakan penggantian jalur ruang kerja apa pun di jalur kustom Anda seperti ${workspace.file_path}
, Anda tidak perlu membuka /Workspace
jalur sebelumnya.
root_path
Pemetaan ini workspace
dapat berisi root_path
pemetaan untuk menentukan jalur akar non-default yang akan digunakan dalam ruang kerja untuk penyebaran dan eksekusi alur kerja, misalnya:
workspace:
root_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}
Secara default, untuk root_path
Databricks CLI menggunakan jalur /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/${bundle.target}
default , yang menggunakan substitusi.
artifact_path
Pemetaan ini workspace
juga dapat berisi artifact_path
pemetaan untuk menentukan jalur artefak non-default yang akan digunakan dalam ruang kerja untuk penyebaran dan eksekusi alur kerja, misalnya:
workspace:
artifact_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}/artifacts
Secara default, untuk artifact_path
Databricks CLI menggunakan jalur ${workspace.root}/artifacts
default , yang menggunakan substitusi.
Catatan
Pemetaan artifact_path
tidak mendukung jalur Databricks File System (DBFS).
file_path
Pemetaan ini workspace
juga dapat berisi file_path
pemetaan untuk menentukan jalur file non-default yang akan digunakan dalam ruang kerja untuk penyebaran dan eksekusi alur kerja, misalnya:
workspace:
file_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}/files
Secara default, untuk file_path
Databricks CLI menggunakan jalur ${workspace.root}/files
default , yang menggunakan substitusi.
state_path
Pemetaan state_path
default ke jalur ${workspace.root}/state
default dan mewakili jalur dalam ruang kerja Anda untuk menyimpan informasi status Terraform tentang penyebaran.
Pemetaan ruang kerja lainnya
Pemetaan workspace
juga dapat berisi pemetaan opsional berikut untuk menentukan mekanisme autentikasi Azure Databricks yang akan digunakan. Jika tidak ditentukan dalam pemetaan iniworkspace
, mereka harus ditentukan dalam workspace
pemetaan sebagai anak dari satu atau beberapa target dalam pemetaan target tingkat atas.
Penting
Anda harus memberi nilai kode keras untuk pemetaan berikut workspace
untuk autentikasi Azure Databricks. Misalnya, Anda tidak dapat menentukan variabel kustom untuk nilai pemetaan ini dengan menggunakan sintaks.${var.*}
Pemetaan
profile
, (atau--profile
opsi atau-p
saat menjalankan perintah validasi, penyebaran, eksekusi, dan penghancuran bundel dengan Databricks CLI) menentukan nama profil konfigurasi yang akan digunakan dengan ruang kerja ini untuk autentikasi Azure Databricks. Profil konfigurasi ini memetakan ke profil yang Anda buat saat menyiapkan Databricks CLI.Catatan
Databricks merekomendasikan agar Anda menggunakan
host
pemetaan (atau--profile
opsi atau-p
saat menjalankan bundel memvalidasi, menyebarkan, menjalankan, dan menghancurkan perintah dengan Databricks CLI) alih-alihprofile
pemetaan, karena ini membuat file konfigurasi bundel Anda lebih portabel.host
Mengatur pemetaan menginstruksikan Databricks CLI untuk menemukan profil yang cocok dalam file Anda.databrickscfg
lalu menggunakan bidang profil tersebut untuk menentukan jenis autentikasi Databricks mana yang akan digunakan. Jika beberapa profil dengan bidang yanghost
cocok ada dalam file Anda.databrickscfg
, maka Anda harus menggunakanprofile
pemetaan (atau--profile
opsi baris perintah atau-p
) untuk menginstruksikan Databricks CLI tentang profil mana yang akan digunakan. Misalnya, lihatprod
deklarasi target dalam contoh.Pemetaan
host
menentukan URL untuk ruang kerja Azure Databricks Anda. Lihat URL per ruang kerja.Untuk autentikasi komputer-ke-mesin (M2M) OAuth, pemetaan
client_id
digunakan. Atau, Anda dapat mengatur nilai ini dalam variabelDATABRICKS_CLIENT_ID
lingkungan lokal . Atau Anda dapat membuat profil konfigurasi denganclient_id
nilai lalu menentukan nama profil denganprofile
pemetaan (atau dengan menggunakan--profile
opsi atau-p
saat menjalankan bundel memvalidasi, menyebarkan, menjalankan, dan menghancurkan perintah dengan Databricks CLI). Lihat Mengotorisasi akses tanpa pengawasan ke sumber daya Azure Databricks dengan perwakilan layanan menggunakan OAuth.Catatan
Anda tidak dapat menentukan nilai rahasia Azure Databricks OAuth dalam file konfigurasi bundel. Sebagai gantinya, atur variabel
DATABRICKS_CLIENT_SECRET
lingkungan lokal . Atau Anda dapat menambahkanclient_secret
nilai ke profil konfigurasi lalu menentukan nama profil denganprofile
pemetaan (atau dengan menggunakan--profile
opsi atau-p
saat menjalankan bundel memvalidasi, menyebarkan, menjalankan, dan menghancurkan perintah dengan Databricks CLI).Untuk autentikasi Azure CLI, pemetaan
azure_workspace_resource_id
digunakan. Atau, Anda dapat mengatur nilai ini dalam variabelDATABRICKS_AZURE_RESOURCE_ID
lingkungan lokal . Atau Anda dapat membuat profil konfigurasi denganazure_workspace_resource_id
nilai lalu menentukan nama profil denganprofile
pemetaan (atau dengan menggunakan--profile
opsi atau-p
saat menjalankan bundel memvalidasi, menyebarkan, menjalankan, dan menghancurkan perintah dengan Databricks CLI). Lihat Autentikasi Azure CLI.Untuk autentikasi rahasia klien Azure dengan perwakilan layanan, pemetaan
azure_workspace_resource_id
,azure_tenant_id
, danazure_client_id
digunakan. Atau, Anda dapat mengatur nilai-nilai ini dalam variabelDATABRICKS_AZURE_RESOURCE_ID
lingkungan lokal , ,ARM_TENANT_ID
danARM_CLIENT_ID
, masing-masing. Atau Anda dapat membuat profil konfigurasi denganazure_workspace_resource_id
nilai , ,azure_tenant_id
danazure_client_id
kemudian menentukan nama profil denganprofile
pemetaan (atau dengan menggunakan--profile
opsi atau-p
saat menjalankan bundel memvalidasi, menyebarkan, menjalankan, dan menghancurkan perintah dengan Databricks CLI). Lihat Autentikasi perwakilan layanan MS Entra.Catatan
Anda tidak dapat menentukan nilai rahasia klien Azure dalam file konfigurasi bundel. Sebagai gantinya, atur variabel
ARM_CLIENT_SECRET
lingkungan lokal . Atau Anda dapat menambahkanazure_client_secret
nilai ke profil konfigurasi lalu menentukan nama profil denganprofile
pemetaan (atau dengan menggunakan--profile
opsi atau-p
saat menjalankan bundel memvalidasi, menyebarkan, menjalankan, dan menghancurkan perintah dengan Databricks CLI).Untuk autentikasi identitas terkelola Azure, pemetaan
azure_use_msi
,azure_client_id
, danazure_workspace_resource_id
digunakan. Atau, Anda dapat mengatur nilai-nilai ini dalam variabelARM_USE_MSI
lingkungan lokal , ,ARM_CLIENT_ID
danDATABRICKS_AZURE_RESOURCE_ID
, masing-masing. Atau Anda dapat membuat profil konfigurasi denganazure_use_msi
nilai , ,azure_client_id
danazure_workspace_resource_id
kemudian menentukan nama profil denganprofile
pemetaan (atau dengan menggunakan--profile
opsi atau-p
saat menjalankan bundel memvalidasi, menyebarkan, menjalankan, dan menghancurkan perintah dengan Databricks CLI). Lihat Autentikasi identitas terkelola Azure.Pemetaan
azure_environment
menentukan jenis lingkungan Azure (seperti Publik, UsGov, Tiongkok, dan Jerman) untuk sekumpulan titik akhir API tertentu. Nilai defaultnya adalahPUBLIC
. Atau, Anda dapat mengatur nilai ini dalam variabelARM_ENVIRONMENT
lingkungan lokal . Atau Anda dapat menambahkanazure_environment
nilai ke profil konfigurasi lalu menentukan nama profil denganprofile
pemetaan (atau dengan menggunakan--profile
opsi atau-p
saat menjalankan bundel memvalidasi, menyebarkan, menjalankan, dan menghancurkan perintah dengan Databricks CLI).Pemetaan
azure_login_app_id
tidak beroperasi dan dicadangkan untuk penggunaan internal.Pemetaan
auth_type
menentukan jenis autentikasi Azure Databricks untuk digunakan, terutama dalam kasus di mana Databricks CLI menyimpulkan jenis autentikasi yang tidak terduga. Lihat Mengotorisasi akses ke sumber daya Azure Databricks.
Izin
Pemetaan tingkat permissions
atas menentukan satu atau beberapa tingkat izin untuk diterapkan ke semua sumber daya yang ditentukan dalam bundel. Jika Anda ingin menerapkan izin ke sumber daya tertentu, lihat Menentukan izin untuk sumber daya tertentu.
Tingkat izin tingkat atas yang diizinkan adalah CAN_VIEW
, , CAN_MANAGE
dan CAN_RUN
.
Contoh berikut dalam file konfigurasi bundel menentukan tingkat izin untuk pengguna, grup, dan perwakilan layanan, yang diterapkan ke semua pekerjaan, alur, eksperimen, dan model yang ditentukan dalam resources
bundel:
permissions:
- level: CAN_VIEW
group_name: test-group
- level: CAN_MANAGE
user_name: someone@example.com
- level: CAN_RUN
service_principal_name: 123456-abcdef
Artefak
Pemetaan tingkat artifacts
atas menentukan satu atau beberapa artefak yang secara otomatis dibangun selama penyebaran bundel dan dapat digunakan nanti dalam eksekusi bundel. Setiap artefak anak mendukung pemetaan berikut:
-
type
diperlukan untuk build roda Python. Untuk membangun file roda Python sebelum menyebarkan, atur ini kewhl
. Untuk membangun artefak lain, pengaturan ini tidak perlu ditentukan. -
path
adalah jalur opsional. Jalur relatif terhadap lokasi file konfigurasi bundel. Untuk pembuatan roda Python, ini adalah jalur ke filesetup.py
dari roda Python. Jikapath
tidak disertakan, Databricks CLI mencoba menemukan filesetup.py
file roda Python di akar bundel. -
files
adalah pemetaan opsional yang mencakup pemetaan turunansource
, yang dapat Anda gunakan untuk menentukan artefak yang dibangun. Jalur relatif terhadap lokasi file konfigurasi bundel. -
build
adalah sekumpulan perintah build non-default opsional yang ingin Anda jalankan secara lokal sebelum penyebaran. Untuk build roda Python, Databricks CLI mengasumsikan bahwa ia dapat menemukan penginstalan lokal paket Pythonwheel
untuk menjalankan build, dan menjalankan perintahpython setup.py bdist_wheel
secara default selama setiap penyebaran bundel. Untuk menentukan beberapa perintah build, pisahkan setiap perintah dengan karakter double-ampersand (&&
).
Contoh konfigurasi berikut membangun roda menggunakan Puisi. Untuk bundel sampel lengkap yang menggunakan artifacts
untuk membangun roda, lihat Mengembangkan file roda Python menggunakan Bundel Aset Databricks.
artifacts:
default:
type: whl
build: poetry build
path: .
Untuk contoh konfigurasi yang membangun JAR dan mengunggahnya ke Unity Catalog, lihat Bundel yang mengunggah file JAR ke Unity Catalog.
Tip
Anda dapat menentukan, menggabungkan, dan mengambil alih pengaturan untuk artefak dalam bundel seperti yang dijelaskan dalam Menentukan pengaturan artefak di Bundel Aset Databricks.
memasukkan
Array include
menentukan daftar glob jalur yang berisi file konfigurasi untuk disertakan dalam bundel. Glob jalur ini relatif terhadap lokasi file konfigurasi bundel tempat glob jalur ditentukan.
Databricks CLI tidak menyertakan file konfigurasi apa pun secara default dalam bundel. Anda harus menggunakan include
array untuk menentukan salah satu dan semua file konfigurasi untuk disertakan dalam bundel, selain file itu databricks.yml
sendiri.
Array ini include
hanya dapat muncul sebagai pemetaan tingkat atas.
Contoh konfigurasi berikut mencakup tiga file konfigurasi. File-file ini berada di folder yang sama dengan file konfigurasi bundel:
include:
- "bundle.artifacts.yml"
- "bundle.resources.yml"
- "bundle.targets.yml"
Contoh konfigurasi berikut mencakup semua file dengan nama file yang dimulai dengan bundle
dan diakhir dengan .yml
. File-file ini berada di folder yang sama dengan file konfigurasi bundel:
include:
- "bundle*.yml"
Sumber daya
Pemetaan resources
menentukan informasi tentang sumber daya Azure Databricks yang digunakan oleh bundel.
Pemetaan resources
ini dapat muncul sebagai pemetaan tingkat atas, atau bisa menjadi anak dari satu atau beberapa target dalam pemetaan tingkat atas, dan mencakup nol atau satu jenis sumber daya yang didukung . Setiap pemetaan jenis sumber daya mencakup satu atau beberapa deklarasi sumber daya individual, yang masing-masing harus memiliki nama yang unik. Deklarasi sumber daya individual ini menggunakan payload permintaan operasi buat objek yang sesuai, yang dinyatakan dalam YAML, untuk menentukan sumber daya. Properti yang didukung untuk sumber daya adalah bidang objek terkait yang didukung.
Buat payload permintaan operasi didokumenkan dalam Referensi REST API Databricks, dan databricks bundle schema
perintah menghasilkan semua skema objek yang didukung. Selain itu, databricks bundle validate
perintah mengembalikan peringatan jika properti sumber daya yang tidak diketahui ditemukan dalam file konfigurasi bundel.
Contoh konfigurasi berikut mendefinisikan sumber daya pekerjaan:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 1234-567890-abcde123
notebook_task:
notebook_path: ./hello.py
Untuk informasi selengkapnya tentang sumber daya yang didukung dalam bundel, serta konfigurasi dan contoh umum, lihat sumber daya Bundel Aset Databricks dan contoh konfigurasi Bundel .
Sync
Pemetaan sync
memungkinkan Anda mengonfigurasi file mana yang merupakan bagian dari penyebaran bundel Anda.
sertakan dan kecualikan
Pemetaan include
dan exclude
dalam pemetaan sync
menentukan daftar file atau folder yang akan disertakan dalam, atau dikecualikan dari, penyebaran bundel, tergantung pada aturan berikut:
- Berdasarkan daftar glob file dan jalur apa pun dalam
.gitignore
file di akar bundel,include
pemetaan dapat berisi daftar glob file, glob jalur, atau keduanya, relatif terhadap akar bundel, untuk secara eksplisit disertakan. - Berdasarkan daftar file dan glob jalur apa pun dalam
.gitignore
file di akar bundel, ditambah daftar glob file dan jalur dalaminclude
pemetaan,exclude
pemetaan dapat berisi daftar glob file, glob jalur, atau keduanya, relatif terhadap akar bundel, untuk secara eksplisit mengecualikan.
Semua jalur ke file dan folder tertentu relatif terhadap lokasi file konfigurasi bundel tempat file tersebut ditentukan.
Sintaks untuk include
pola exclude
file dan jalur mengikuti sintaks pola standar .gitignore
. Lihat Format Pola gitignore.
Misalnya, jika file berikut .gitignore
berisi entri berikut:
.databricks
my_package/dist
Dan file konfigurasi bundel berisi pemetaan berikut include
:
sync:
include:
- my_package/dist/*.whl
Kemudian semua file dalam my_package/dist
folder dengan ekstensi *.whl
file disertakan. File lain dalam my_package/dist
folder tidak disertakan.
Namun, jika file konfigurasi bundel juga berisi pemetaan berikut exclude
:
sync:
include:
- my_package/dist/*.whl
exclude:
- my_package/dist/delete-me.whl
Kemudian semua file dalam my_package/dist
folder dengan ekstensi *.whl
file , kecuali untuk file bernama delete-me.whl
, disertakan. File lain dalam my_package/dist
folder juga tidak disertakan.
Pemetaan sync
juga dapat dideklarasikan dalam targets
pemetaan untuk target tertentu. Pemetaan apa pun sync
yang dideklarasikan dalam target digabungkan dengan deklarasi pemetaan tingkat sync
atas apa pun. Misalnya, melanjutkan dengan contoh sebelumnya, pemetaan berikut include
pada targets
tingkat menggabungkan dengan include
pemetaan di pemetaan tingkat sync
atas:
targets:
dev:
sync:
include:
- my_package/dist/delete-me.whl
jalur
Pemetaan sync
dapat berisi paths
pemetaan yang menentukan jalur lokal untuk disinkronkan ke ruang kerja. Pemetaan paths
memungkinkan Anda berbagi file umum di seluruh bundel, dan dapat digunakan untuk menyinkronkan file yang terletak di luar akar bundel. (Akar bundel adalah lokasi file databricks.yml.) Ini sangat berguna ketika Anda memiliki satu repositori yang menghosting beberapa bundel dan ingin berbagi pustaka, file kode, atau konfigurasi.
Jalur yang ditentukan harus relatif terhadap file dan direktori yang berlabuh di folder tempat paths
pemetaan diatur. Jika satu atau beberapa nilai jalur melintasi direktori ke leluhur akar bundel, jalur akar ditentukan secara dinamis untuk memastikan bahwa struktur folder tetap utuh. Misalnya, jika folder akar bundel diberi nama my_bundle
maka konfigurasi ini dalam databricks.yml
menyinkronkan common
folder yang terletak satu tingkat di atas akar bundel dan akar bundel itu sendiri:
sync:
paths:
- ../common
- .
Penyebaran bundel ini menghasilkan struktur folder berikut di ruang kerja:
common/
common_file.txt
my_bundle/
databricks.yml
src/
...
Target
Pemetaan targets
menentukan satu atau beberapa konteks untuk menjalankan alur kerja Azure Databricks. Setiap target adalah kumpulan artefak unik, pengaturan ruang kerja Azure Databricks, dan detail pekerjaan atau alur Azure Databricks.
Pemetaan targets
terdiri dari satu atau beberapa pemetaan target, yang masing-masing harus memiliki nama terprogram (atau logis) yang unik.
Pemetaan ini targets
bersifat opsional tetapi sangat disarankan. Jika ditentukan, itu hanya dapat muncul sebagai pemetaan tingkat atas.
Pengaturan di pemetaan ruang kerja, artefak, dan sumber daya tingkat target.
Target juga dapat mengambil alih nilai variabel tingkat atas apa pun.
Default
Untuk menentukan default target untuk perintah bundel, atur default
pemetaan ke true
. Misalnya, target bernama dev
ini adalah target default:
targets:
dev:
default: true
Jika target default tidak dikonfigurasi, atau jika Anda ingin memvalidasi, menyebarkan, dan menjalankan pekerjaan atau alur dalam target tertentu, gunakan -t
opsi perintah bundel.
Perintah berikut memvalidasi, menyebarkan, dan menjalankan my_job
dalam dev
target dan prod
:
databricks bundle validate
databricks bundle deploy -t dev
databricks bundle run -t dev my_job
databricks bundle validate
databricks bundle deploy -t prod
databricks bundle run -t prod my_job
Contoh berikut mendeklarasikan dua target. Target pertama memiliki nama dev
dan merupakan target default yang digunakan ketika tidak ada target yang ditentukan untuk perintah bundel. Target kedua memiliki nama prod
dan hanya digunakan ketika target ini ditentukan untuk perintah bundel.
targets:
dev:
default: true
prod:
workspace:
host: https://<production-workspace-url>
mode dan preset
Untuk memfasilitasi pengembangan yang mudah dan praktik terbaik CI/CD, Bundel Aset Databricks menyediakan mode penyebaran untuk target yang menetapkan perilaku default untuk alur kerja pra-produksi dan produksi. Beberapa perilaku juga dapat dikonfigurasi. Untuk detailnya, lihat Mode penyebaran Bundel Aset Databricks.
Tip
Untuk mengatur identitas eksekusi untuk bundel, Anda dapat menentukan run_as
untuk setiap target, seperti yang dijelaskan dalam Menentukan identitas eksekusi untuk alur kerja Bundel Aset Databricks.
Untuk menentukan bahwa target diperlakukan sebagai target pengembangan, tambahkan mode
set pemetaan ke development
. Untuk menentukan bahwa target diperlakukan sebagai target produksi, tambahkan mode
set pemetaan ke production
. Misalnya, target bernama prod
ini diperlakukan sebagai target produksi:
targets:
prod:
mode: production
Anda dapat menyesuaikan beberapa perilaku menggunakan presets
pemetaan. Untuk daftar preset yang tersedia, lihat Preset kustom. Contoh berikut menunjukkan target produksi yang disesuaikan yang awalan dan menandai semua sumber daya produksi:
targets:
prod:
mode: production
presets:
name_prefix: "production_" # prefix all resource names with production_
tags:
prod: true
Jika keduanya mode
dan presets
diatur, prasetel akan mengambil alih perilaku mode default. Pengaturan sumber daya individual mengambil alih prasetel. Misalnya, jika jadwal diatur ke UNPAUSED
, tetapi trigger_pause_status
prasetel diatur ke PAUSED
, jadwal akan tidak digunakan.