Bagikan melalui


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-bundleterprogram (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 perintah git 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 perintah git 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}/artifactsdefault , 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}/filesdefault , 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-alih profile 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 yang host cocok ada dalam file Anda .databrickscfg , maka Anda harus menggunakan profile pemetaan (atau --profile opsi baris perintah atau -p ) untuk menginstruksikan Databricks CLI tentang profil mana yang akan digunakan. Misalnya, lihat prod 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 variabel DATABRICKS_CLIENT_IDlingkungan lokal . Atau Anda dapat membuat profil konfigurasi dengan client_id nilai lalu menentukan nama profil dengan profile 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_SECRETlingkungan lokal . Atau Anda dapat menambahkan client_secret nilai ke profil konfigurasi lalu menentukan nama profil dengan profile 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 variabel DATABRICKS_AZURE_RESOURCE_IDlingkungan lokal . Atau Anda dapat membuat profil konfigurasi dengan azure_workspace_resource_id nilai lalu menentukan nama profil dengan profile 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, dan azure_client_id digunakan. Atau, Anda dapat mengatur nilai-nilai ini dalam variabel DATABRICKS_AZURE_RESOURCE_IDlingkungan lokal , , ARM_TENANT_IDdan ARM_CLIENT_ID, masing-masing. Atau Anda dapat membuat profil konfigurasi dengan azure_workspace_resource_idnilai , , azure_tenant_iddan azure_client_id kemudian menentukan nama profil dengan profile 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_SECRETlingkungan lokal . Atau Anda dapat menambahkan azure_client_secret nilai ke profil konfigurasi lalu menentukan nama profil dengan profile 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, dan azure_workspace_resource_id digunakan. Atau, Anda dapat mengatur nilai-nilai ini dalam variabel ARM_USE_MSIlingkungan lokal , , ARM_CLIENT_IDdan DATABRICKS_AZURE_RESOURCE_ID, masing-masing. Atau Anda dapat membuat profil konfigurasi dengan azure_use_msinilai , , azure_client_iddan azure_workspace_resource_id kemudian menentukan nama profil dengan profile 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 adalah PUBLIC. Atau, Anda dapat mengatur nilai ini dalam variabel ARM_ENVIRONMENTlingkungan lokal . Atau Anda dapat menambahkan azure_environment nilai ke profil konfigurasi lalu menentukan nama profil dengan profile 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_MANAGEdan 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 ke whl. 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 file setup.py dari roda Python. Jika path tidak disertakan, Databricks CLI mencoba menemukan file setup.py file roda Python di akar bundel.
  • files adalah pemetaan opsional yang mencakup pemetaan turunan source, 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 Python wheel untuk menjalankan build, dan menjalankan perintah python 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 dalam include 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 *.whlfile , 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.