Aracılığıyla paylaş


Databricks Varlık Paketi yapılandırması

Bu makalede Databricks Varlık Paketleri'ni tanımlayan Databricks Varlık Paketi yapılandırma dosyalarının söz dizimi açıklanmaktadır. Bkz. Databricks Varlık Paketleri nedir?.

Paket oluşturmak ve bunlarla çalışmak için bkz. Databricks Varlık Paketleri Geliştirme.

databricks.yml

Paket, paket proje klasörünün kökünde adlı databricks.yml bir (ve yalnızca bir) yapılandırma dosyası içermelidir. databricks.yml bir paketi tanımlayan ana yapılandırma dosyasıdır, ancak eşlemede kaynak yapılandırma dosyaları gibi diğer yapılandırma dosyalarına include başvurabilir. Paket yapılandırması YAML ile ifade edilir. YAML hakkında daha fazla bilgi için resmi YAML belirtimine bakın.

En databricks.yml basiti, gerekli üst düzey eşleme paketinin içinde yer alan paket adını ve bir hedef dağıtımı tanımlar.

bundle:
  name: my_bundle

targets:
  dev:
    default: true

Tüm üst düzey eşlemelerle ilgili ayrıntılar için bkz. Eşlemeler.

Tavsiye

Databricks Varlık Paketleri için Python desteği, Python'da kaynakları tanımlamanızı sağlar. Bkz . Python'da paket yapılandırması.

Şartname

Aşağıdaki YAML belirtimi, Databricks Varlık Paketleri için üst düzey yapılandırma anahtarları sağlar. Yapılandırma referansı için bkz Yapılandırma Referansı.

# 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
  deployment: Map
  git:
    origin_url: string
    branch: string

# This is the identity to use to run the bundle
run_as:
  - user_name: <user-name>
  - service_principal_name: <service-principal-name>

# These are any additional configuration files to include.
include:
  - '<some-file-or-path-glob-to-include>'
  - '<another-file-or-path-glob-to-include>'

# These are any scripts that can be run.
scripts:
  <some-unique-script-name>:
    content: string

# 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 default artifact settings if not otherwise overridden in
# the targets top-level mapping.
artifacts:
  <some-unique-artifact-identifier>:
    build: string
    dynamic_version: boolean
    executable: string
    files:
      - source: string
    path: string
    type: string

# These are for any custom variables for use throughout the bundle.
variables:
  <some-unique-variable-name>:
    description: string
    default: string or complex
    lookup: Map
    type: string # The only valid value is "complex" if the variable is a complex variable, otherwise do not define this key.

# These are the default workspace settings if not otherwise overridden in
# the 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. 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
  resource_path: string
  root_path: string
  state_path: string

# These are the permissions to apply to resources 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 resource settings if not otherwise overridden in
# the targets top-level mapping.
resources:
  apps:
    <unique-app-name>:
      # See the REST API create request payload reference for apps.
  clusters:
    <unique-cluster-name>:
      # See the REST API create request payload reference for clusters.
  dashboards:
    <unique-dashboard-name>:
      # See the REST API create request payload reference for dashboards.
  experiments:
    <unique-experiment-name>:
      # See the REST API create request payload reference for experiments.
  jobs:
    <unique-job-name>:
      # See REST API create request payload reference for jobs.
  model_serving_endpoint:
    <unique-model-serving-endpoint-name>:
    # See the model serving endpoint request payload reference.
  models:
    <unique-model-name>:
      # See the REST API create request payload reference for models (legacy).
  pipelines:
    <unique-pipeline-name>:
      # See the REST API create request payload reference for :re[LDP] (pipelines).
  quality_monitors:
    <unique-quality-monitor-name>:
    # See the quality monitor request payload reference.
  registered_models:
    <unique-registered-model-name>:
    # See the registered model request payload reference.
  schemas:
    <unique-schema-name>:
      # See the Unity Catalog schema request payload reference.
  secret_scopes:
    <unique-secret-scope-name>:
      # See the secret scope request payload reference.
  volumes:
    <unique-volume-name>:
    # See the Unity Catalog volume request payload reference.

# 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.
    default: boolean
    git: Map
    mode: string
    permissions:
      # See the preceding "permissions" syntax.
    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.

Örnekler

Bu bölüm, paketlerin nasıl çalıştığını ve yapılandırmayı nasıl yapılandırabileceğinizi anlamanıza yardımcı olacak bazı temel örnekler içerir.

Uyarı

Paket özelliklerini ve yaygın paket kullanım örneklerini gösteren yapılandırma örnekleri için bkz . Paket yapılandırma örnekleri ve GitHub'daki paket örnekleri deposu.

Aşağıdaki örnek paket yapılandırması, paket yapılandırma dosyasıyla aynı dizinde bulunan adlı hello.py bir yerel dosya databricks.ymlbelirtir. Bu not defterini, belirtilen küme kimliğine sahip uzak kümeyi kullanarak bir görev olarak çalıştırır. Uzak çalışma alanı URL'si ve çalışma alanı kimlik doğrulaması kimlik bilgileri, çağıranın adlı yerel DEFAULT okunur.

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

Aşağıdaki örnek, belirtilen çalışma alanı URL'si ile eşleşen prod girdisinden okunan farklı bir uzak çalışma alanı URL'si ve çalışma alanı kimlik doğrulama bilgilerini kullanan ve adı .databrickscfg olan bir hedef ekler. Bu hedef, çağıranın host dosyasında yer alır. Bu görev aynı not defterini çalıştırır ancak belirtilen küme kimliğine sahip farklı bir harici küme kullanır.

Uyarı

Databricks, paket yapılandırma dosyalarınızı daha taşınabilir hale getirdiğinden, mümkün olduğunca host eşlemesi yerine default eşlemesini kullanmanız önerilmektedir. Eşlemeyi host ayarlamak, Databricks CLI'ya dosyanızda .databrickscfg eşleşen bir profil bulmasını ve ardından kullanılacak Databricks kimlik doğrulama türünü belirlemek için bu profilin alanlarını kullanmasını gerektirir. Eşleşen host alana sahip birden çok profil varsa, kullanılacak profili belirtmek için paket komutlarında seçeneğini kullanmanız --profile gerekir.

"notebook_task eşlemesini prod eşlemesi içinde bildirmenize gerek yoktur çünkü notebook_task eşlemesi resources eşlemesi içinde açıkça geçersiz kılınmadığında, üst düzey notebook_task eşlemesi içindeki prod eşlemesini kullanabilir."

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

Bu işi doğrulamak, dağıtmak ve hedef içinde çalıştırmak için aşağıdaki paket komutlarınıdev kullanın. Bir paketin yaşam döngüsü hakkında ayrıntılı bilgi için bkz. Databricks Varlık Paketleri Geliştirme.

# 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

Bunun yerine bu işi doğrulamak, dağıtmak ve hedefte prod çalıştırmak için:

# 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

Tanımların ve ayarların paketler arasında daha modüler hale getirilmesi ve daha iyi yeniden kullanılması için paket yapılandırmanızı ayrı dosyalara bölün:

# databricks.yml

bundle:
  name: hello-bundle

include:
  - '*.yml'
# hello-job.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
# 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

Eşleştirmeler

Aşağıdaki bölümlerde paket yapılandırması üst düzey eşlemeleri açıklanmaktadır. Yapılandırma referansı için bkz Yapılandırma Referansı.

paket

Paket yapılandırma dosyası, paketin içeriğini ve Azure Databricks çalışma alanı ayarlarını ilişkilendiren yalnızca bir üst düzey bundle eşleme içermelidir.

Bu bundle eşleme, paket için programlı (veya mantıksal) bir ad belirten bir eşleme içermelidir name . Aşağıdaki örnek, programatik (veya mantıksal) ad ile hello-bundle olarak bir paketi bildirir.

bundle:
  name: hello-bundle

Üst düzey bundle eşlemesindeki bir veya daha fazla hedefin alt öğesi de bir eşleme olabilir. Bu çocuk bundle eşlemelerin her biri, hedef düzeyde varsayılan olmayan özelleştirmeleri belirtir. Ancak, üst düzey bundle eşlemenin name değeri hedef düzeyde geçersiz kılınamaz.

cluster_id

bundle eşlemesi, bir cluster_id alt eşlemesine sahip olabilir. Bu eşleme, paket yapılandırma dosyasının başka bir yerinde tanımlanan kümeler için geçersiz kılma olarak kullanılacak küme kimliğini belirtmenizi sağlar. Kümenin kimliğini alma hakkında bilgi için bkz . İşlem kaynağı URL'si ve kimliği.

cluster_id geçersiz kılma yalnızca geliştirme senaryolarına yöneliktir ve yalnızca mode eşlemesi developmentolarak ayarlanmış hedef için desteklenir. Eşleme hakkında target daha fazla bilgi için hedeflere göz atın.

compute_id

Uyarı

Bu ayar kullanım dışıdır. Bunun yerine cluster_id kullanın.

bundle eşlemesi, bir compute_id alt eşlemesine sahip olabilir. Bu eşleme, paket yapılandırma dosyasının başka bir yerinde tanımlanan kümeler için geçersiz kılma olarak kullanılacak küme kimliğini belirtmenizi sağlar.

ahmak

Paketinizle ilişkili Git sürüm denetimi ayrıntılarını alabilir ve geçersiz kılabilirsiniz. Bu, daha sonra kaynakları tanımlamak için kullanılabilecek dağıtım meta verilerini yaymak için kullanışlıdır. Örneğin, CI/CD tarafından dağıtılan bir işin depo kaynağını izleyebilirsiniz.

bundle komutunu, validate, deploy veya run gibi bir komutu her çalıştırdığınızda, bundle komutu, komutun yapılandırma ağacını aşağıdaki varsayılan ayarlarla doldurur:

  • bundle.git.origin_url, deponun kaynak URL'sini temsil eder. Bu, klonlanmış deponuzdan git config --get remote.origin.url komutunu çalıştırdığınızda elde edeceğiniz değerle aynıdır. Paket yapılandırma dosyalarınızda bu değere ikâme kullanarak başvurabilirsiniz.
  • bundle.git.branch, depo içindeki geçerli dalı temsil eder. Bu, klonlanmış deponuzdan git branch --show-current komutunu çalıştırdığınızda elde edeceğiniz değerle aynıdır. Paket yapılandırma dosyalarınızda bu değere ikâme kullanarak başvurabilirsiniz.

Git ayarlarını almak veya geçersiz kılmak için paketinizin git deposuyla ilişkilendirilmiş bir dizin içinde olması gerekir. Örneğin, komutu çalıştırılarak git clone başlatılan yerel dizin. Dizin bir Git deposuyla ilişkilendirilmemişse, bu Git ayarları boş olur.

origin_url ve branch ayarlarını, gerekirse en üst düzey git eşlemenizin bundle eşlemesi içinde aşağıdaki gibi geçersiz kılabilirsiniz:

bundle:
  git:
    origin_url: <some-non-default-origin-url>
    branch: <some-non-current-branch-name>

databricks_cli_version

Eşleme, bundle paketin gerektirdiği Databricks CLI sürümünü kısıtlayan bir databricks_cli_version eşleme içerebilir. Bu, Databricks CLI'nın belirli bir sürümünde desteklenmeyen eşlemelerin kullanılmasından kaynaklanan sorunları önleyebilir.

Databricks CLI sürümü anlamsal sürüm oluşturma ile uyumlu ve databricks_cli_version eşleme sürüm kısıtlamalarını belirtmeyi destekler. Geçerli databricks --version değeri, paketin databricks_cli_version eşlemesinde belirtilen sınırlar içinde değilse, databricks bundle validate pakette yürütüldüğünde bir hata oluşur. Aşağıdaki örneklerde bazı yaygın sürüm kısıtlaması söz dizimi gösterilmektedir:

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

olarak çalıştır

run_as ayarı, paketi çalıştırmak için kullanılacak user_name veya service_principal_name öğesini belirtir. Bir paket işi veya işlem hattını dağıtmak için kullanılan kimliği, işi veya işlem hattını çalıştırmak için kullanılan kimlikten ayırma olanağı sağlar.

Bakınız Databricks Varlık Paketleri iş akışında çalıştırma kimliği belirtme.

dahil etmek

include dizisi, pakete eklenecek yapılandırma dosyalarını içeren yol glob'larının listesini belirtir. Bu yol glob'ları, yol glob'larının belirtildiği paket yapılandırma dosyasının konumuna göre belirlenir.

Databricks CLI, paket içinde varsayılan olarak herhangi bir yapılandırma dosyası içermez. Paketin içine eklenecek tüm yapılandırma dosyalarını, dosya include'in kendisinden başka, belirtmek için databricks.yml dizisini kullanmanız gerekir.

Bu include dizi yalnızca en üst düzey eşleme olarak görünebilir.

Aşağıdaki örnek yapılandırma üç yapılandırma dosyası içerir. Bu dosyalar paket yapılandırma dosyasıyla aynı klasördedir:

include:
  - 'bundle.artifacts.yml'
  - 'bundle.resources.yml'
  - 'bundle.targets.yml'

Aşağıdaki örnek yapılandırma ile başlayan bundle ve ile .ymlbiten dosya adlarına sahip tüm dosyaları içerir. Bu dosyalar paket yapılandırma dosyasıyla aynı klasördedir:

include:
  - 'bundle*.yml'

Komut dosyaları

scripts ayarı, bundle run kullanılarak çalıştırılabilir betikleri belirtir. scripts eşlemesindeki her adlandırılmış betik, komutları içeren içerik barındırır. Örneğin:

scripts:
  my_script:
    content: uv run pytest -m ${bundle.target}

Daha fazla bilgi için bkz. Komut dosyalarını çalıştırma.

senkronize et

Eşleme, sync paket dağıtımlarınızın parçası olan dosyaları yapılandırmanıza olanak tanır.

dahil et ve dışla

include eşlemesi içindeki exclude ve sync eşlemeleri, aşağıdaki kurallara bağlı olarak paket dağıtımlarına dahil edilen veya hariç tutulacak dosya veya klasörlerin listesini belirtir:

  • Paketin kökündeki bir .gitignore dosyasında bulunan dosya ve yol globlarının herhangi bir listesine bağlı olarak, include haritalandırması, dosya glob'ları, yol glob'ları veya her ikisini de içerebilen bir liste içerebilir ve bu liste paketin köküne göre açıkça dahil edilir.
  • Paketin kökündeki bir .gitignore dosyadaki dosya ve yol glob'larının listesinin yanı sıra eşlemedeki include dosya ve yol globlarının listesine bağlı olarak, exclude eşleme açıkça dışlamak için paketin köküne göre dosya globları, yol glob'ları veya her ikisini de içerebilir.

Belirtilen dosya ve klasörlerin tüm yolları, belirtilen paket yapılandırma dosyasının konumuna göre belirlenir.

include ve exclude dosya ve yol desenlerinin söz dizimi standart .gitignore desen söz dizimini takip eder. Bkz. gitignore Desen Formatı.

Örneğin, aşağıdaki .gitignore dosya aşağıdaki girdileri içeriyorsa:

.databricks
my_package/dist

Paket yapılandırma dosyası aşağıdaki include eşlemeyi içerir:

sync:
  include:
    - my_package/dist/*.whl

Ardından, dosya uzantısına my_package/dist sahip klasördeki *.whl tüm dosyalar eklenir. Klasördeki my_package/dist diğer dosyalar dahil değildir.

Ancak, paket yapılandırma dosyası da aşağıdaki exclude eşlemeyi içeriyorsa:

sync:
  include:
    - my_package/dist/*.whl
  exclude:
    - my_package/dist/delete-me.whl

Ardından, my_package/dist dosya uzantısına sahip ve *.whl klasöründe bulunan dosyalar arasından, adı delete-me.whl olmayan tüm dosyalar eklenir. Klasördeki my_package/dist diğer dosyalar da dahil değildir.

Belirli bir hedef için sync eşlemesi, targets eşlemesinde de bildirilebilir. Hedefte bildirilen tüm sync eşlemeler, en üst düzey sync eşleme bildirimleriyle birleştirilir. Örneğin, önceki örneğe devam edersek, include düzeyindeki aşağıdaki eşleme, en üst düzey targets eşlemedeki include eşlemeyle sync birleştirilir.

targets:
  dev:
    sync:
      include:
        - my_package/dist/delete-me.whl

Yollar

sync eşleme, çalışma alanıyla eşitlenecek yerel yolları belirten bir paths eşleme içerebilir. paths eşlemesi, ortak dosyaları paketler arasında paylaşmanıza olanak tanır ve paket kökü dışında bulunan dosyaları eşitlemek için kullanılabilir. (Paket kökü, databricks.yml dosyasının konumudur.) Bu, özellikle birden çok paketi barındıran ve kitaplıkları, kod dosyalarını veya yapılandırmayı paylaşmak istediğiniz tek bir deponuz olduğunda kullanışlıdır.

Belirtilen yollar, paths eşlemesinin ayarlandığı klasöre sabitlenmiş dosyalara ve dizinlere göre olmalıdır. Bir veya daha fazla yol değeri, dizin yapısında paket kökünün bir üst düzeyine kadar geçerse, klasör yapısının bozulmadan kalmasını sağlamak için kök yol dinamik olarak belirlenir. Örneğin, paket kök klasörünün adı my_bundle olduğunda, databricks.yml içindeki bu yapılandırma, paket kök dizini ile onun bir düzey üzerinde bulunan common klasörünü senkronize eder.

sync:
  paths:
    - ../common
    - .

Bu paketin dağıtılması, çalışma alanında aşağıdaki klasör yapısına neden olur:

common/
  common_file.txt
my_bundle/
  databricks.yml
  src/
    ...

Eserler

Üst düzey artifacts eşleme, paket dağıtımları sırasında otomatik olarak oluşturulan ve daha sonra paket çalıştırmalarında kullanılabilen bir veya daha fazla yapıtı belirtir. Her bir alt eser aşağıdaki eşlemeleri destekler:

  • Python tekerleği derlemeleri için type gereklidir. Dağıtmadan önce bir Python tekerlek dosyası oluşturmak için bunu whlolarak ayarlayın. Diğer yapıtları oluşturmak için bu ayarın belirtilmesi gerekmez.
  • path isteğe bağlı bir yoldur. Yollar, paket yapılandırma dosyasının konumuna göredir. Python Wheel derlemeleri için, Python Wheel dosyasının setup.py dosyasının yoludur. Eğer path dahil edilmemişse, Databricks CLI, Python wheel dosyasının setup.py dosyasını paketin kökünde bulmayı dener.
  • files, alt source eşlemesini içeren isteğe bağlı bir eşlemedir. Bu eşlemeyi kullanarak yerleşik yapıtları belirtebilirsiniz. Yollar, paket yapılandırma dosyasının konumuna göredir.
  • build, dağıtımdan önce yerel olarak çalıştırmak istediğiniz isteğe bağlı bir varsayılan olmayan derleme komutları kümesidir. Python tekerleği derlemeleri için Databricks CLI, derlemeleri çalıştırmak için Python wheel paketinin yerel bir yüklemesini bulabileceğini varsayar ve her paket dağıtımı sırasında varsayılan olarak komutunu python setup.py bdist_wheel çalıştırır. Ayrı satırlarda birden çok derleme komutu belirtin.
  • dynamic_version , tekerlek dosyasının zaman damgasını esas alarak tekerlek sürümünü güncelleştirmek için paketleri etkinleştirir. Yeni kod, setup.py veya pyproject.toml sürümlerini güncelleştirmeye gerek kalmadan daha sonra dağıtılabilir. Ayar yalnızca typewhl olarak ayarlandığında geçerlidir.

Aşağıdaki örnek yapılandırma testleri çalıştırır ve tekerlek oluşturur. Tekerlek oluşturmak için kullanılan artifacts eksiksiz bir paket öğreticisi için bkz. Databricks Varlık Paketlerini kullanarak Python tekerlek dosyası oluşturma.

artifacts:
  default:
    type: whl
    build: |-
      # run tests
      python -m pytest tests/ -v

      # build the actual artifact
      python setup.py bdist_wheel

    path: .

JAR oluşturan ve Unity Kataloğu'na yükleyen örnek bir yapılandırma için bkz. Unity Kataloğu'na JAR dosyası yükleyen paket.

Tavsiye

Paketlerdeki yapıtların ayarlarını, Hedef ayarlarla geçersiz kılma bölümünde açıklandığı gibi tanımlayabilir, birleştirebilir ve geçersiz kılabilirsiniz.

Değişkenler

Paket ayarları dosyası, özel değişkenlerin tanımlandığı bir üst düzey variables eşlemesi içerebilir. Her değişken için, aşağıdaki biçimi kullanarak isteğe bağlı bir açıklama, varsayılan değer, özel değişkenin karmaşık bir tür olup olmadığı veya kimlik değeri almak için arama yapın:

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>

Uyarı

string typeolarak ayarlanmadığı sürece değişkenlerin complextüründe olduğu varsayılır. Bkz . Karmaşık değişken tanımlama.

Paket yapılandırması içinde özel bir değişkene başvurmak için yerine ${var.<variable_name>}kullanın.

Özel değişkenler ve değiştirmeler hakkında daha fazla bilgi için bkz. Databricks Varlık Paketlerinde değiştirmeler ve değişkenler.

çalışma alanı

Paket yapılandırma dosyası, kullanılacak varsayılan olmayan Azure Databricks çalışma alanı ayarlarını belirtmek için yalnızca bir üst düzey workspace eşleme içerebilir.

Önemli

Geçerli Databricks çalışma alanı yolları /Workspace ile başlar, yapıtlar için ise /Volumesde desteklenir. Özel çalışma alanı yollarına otomatik olarak "/Workspace" ön eki eklenir, bu nedenle özel yolunuzda "${workspace.file_path}" gibi herhangi bir çalışma alanı yolu değişimi kullanıyorsanız, yolun başına "/Workspace" eklemenize gerek yoktur.

kök_dizin

Bu workspace eşleme, hem dağıtımlar hem de iş akışı çalıştırmaları için çalışma alanında kullanılacak varsayılan olmayan bir kök yol belirtmek için bir root_path eşleme içerebilir, örneğin:

workspace:
  root_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}

Varsayılan olarak, Databricks CLI, değişkenlerini kullanarak varsayılan yolunu kullanır.

artifact_yolu

Bu workspace eşleme, hem dağıtımlar hem de iş akışı çalıştırmaları için çalışma alanında kullanılacak varsayılan olmayan bir yapıt yolu belirtmek için artifact_path bir eşleme de içerebilir, örneğin:

workspace:
  artifact_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}/artifacts

Varsayılan olarak, Databricks CLI, değişkenlerini kullanarak varsayılan yolunu kullanır.

Uyarı

Eşleme artifact_path, Databricks Dosya Sistemi (DBFS) yollarını desteklemez.

dosya yolu

Bu workspace eşleme, hem dağıtımlar hem de iş akışı çalıştırmaları için çalışma alanında kullanılacak varsayılan olmayan bir dosya yolu belirtmek için bir eşleme de içerebilir file_path , örneğin:

workspace:
  file_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}/files

Varsayılan olarak, Databricks CLI, değişkenlerini kullanarak varsayılan yolunu kullanır.

durum_yolu

Eşleme state_path varsayılan olarak ${workspace.root}/state yolunu kullanır ve çalışma alanınızdaki dağıtımlar hakkındaki Terraform durum bilgilerini depoladığınız yolu temsil eder.

Diğer çalışma alanı eşlemeleri

Eşleme workspace , kullanılacak Azure Databricks kimlik doğrulama mekanizmasını belirtmek için aşağıdaki isteğe bağlı eşlemeleri de içerebilir. Bu workspace eşleme içinde belirtilmezlerse, bir veya daha fazla hedefin alt öğesi olarak, üst düzey workspace eşlemesi içindeki bir eşlemede belirtilmelidir.

Önemli

Azure Databricks kimlik doğrulaması için aşağıdaki workspace eşlemeleri için değerleri sabit kodlamalısınız. Örneğin, söz dizimini kullanarak bu eşlemelerin değerleri için ${var.*} belirtemezsiniz.

  • profile eşleme (veya --profile ya da -p seçenekleri), Databricks CLI ile paketi çalıştırırken kullanılan doğrulama, dağıtma, çalıştırma ve yok etme komutlarının içinde, Azure Databricks kimlik doğrulaması için bu çalışma alanında kullanılacak yapılandırma profilinin adını belirtir. Bu yapılandırma profili, Databricks CLI'yı ayarlarken oluşturduğunuz profille eşler.

    Uyarı

    Databricks, paket yapılandırma dosyalarınızın daha taşınabilir olmasını sağlamak için, host eşlemesi yerine --profile eşlemesini (veya paket doğrulama, dağıtma, çalıştırma ve yok etme komutlarını Databricks CLI ile çalıştırırken -p veya profile seçeneklerini) kullanmanızı önerir. Eşlemeyi host ayarlamak, Databricks CLI'ya dosyanızda .databrickscfg eşleşen bir profil bulmasını ve ardından kullanılacak Databricks kimlik doğrulama türünü belirlemek için bu profilin alanlarını kullanmasını gerektirir. Dosyanızda eşleşen host alana sahip birden çok profil varsa, Databricks CLI'ye hangi profilin kullanılacağını bildirmek için eşlemeyi (veya .databrickscfg veya profile komut satırı seçeneklerini) kullanmanız --profile-p gerekir. Örnek için prod hedef bildirimine bakın.

  • Eşleştirme, host Azure Databricks çalışma alanınızın URL'sini belirtir. Bkz. Çalışma alanı başına URL.

  • OAuth makineden makineye (M2M) kimlik doğrulaması için eşleme client_id kullanılır. Alternatif olarak, bu değeri DATABRICKS_CLIENT_IDyerel ortam değişkeninde ayarlayabilirsiniz. Ya da client_id değeriyle bir yapılandırma profili oluşturabilir ve ardından profile eşlemesi ile profilin adını belirtebilirsiniz (veya Databricks CLI ile bundle doğrulama, dağıtma, çalıştırma ve yok etme komutlarını çalıştırırken --profile veya -p seçeneklerini kullanarak). Bkz. OAuth ile Azure Databricks'e hizmet sorumlusu erişimini yetkilendirme.

    Uyarı

    Paket yapılandırma dosyasında Azure Databricks OAuth gizli dizi değeri belirtemezsiniz. Bunun yerine yerel ortam değişkenini DATABRICKS_CLIENT_SECRETayarlayın. Ya da client_secret değerini bir yapılandırma profiline ekleyebilir ve ardından eşleme ile profile profilin adını veya doğrulama, dağıtma, çalıştırma ve yok etme komutlarını Databricks CLI ile çalıştırırken --profile veya -p seçeneklerini kullanarak belirtebilirsiniz.

  • Azure CLI kimlik doğrulaması için eşleme azure_workspace_resource_id kullanılır. Alternatif olarak, bu değeri DATABRICKS_AZURE_RESOURCE_IDyerel ortam değişkeninde ayarlayabilirsiniz. Ya da azure_workspace_resource_id değeriyle bir yapılandırma profili oluşturabilir ve ardından profile eşlemesi ile profilin adını belirtebilirsiniz (veya Databricks CLI ile bundle doğrulama, dağıtma, çalıştırma ve yok etme komutlarını çalıştırırken --profile veya -p seçeneklerini kullanarak). Bkz. Azure CLI ile kimlik doğrulaması.

  • Hizmet sorumlularıyla Azure istemci gizli anahtarı kimlik doğrulaması için azure_workspace_resource_id, azure_tenant_id ve azure_client_id eşlemeleri kullanılır. Alternatif olarak, bu değerleri sırasıyla , DATABRICKS_AZURE_RESOURCE_IDve ARM_TENANT_IDARM_CLIENT_IDyerel ortam değişkenlerinde ayarlayabilirsiniz. Alternatif olarak, azure_workspace_resource_id, azure_tenant_id ve azure_client_id değerleriyle bir yapılandırma profili oluşturabilir ve ardından profile eşlemesi ile profilin adını belirtebilirsiniz (ya da Databricks CLI ile doğrulama, dağıtma, çalıştırma ve yok etme komutlarını çalıştırırken --profile veya -p seçeneklerini kullanarak). Bkz. Microsoft Entra hizmet sorumlularıyla kimlik doğrulaması.

    Uyarı

    Paket yapılandırma dosyasında bir Azure istemci gizli anahtarı değeri belirtemezsiniz. Bunun yerine yerel ortam değişkenini ARM_CLIENT_SECRETayarlayın. Ya da azure_client_secret değerini bir yapılandırma profiline ekleyebilir ve ardından eşleme ile profile profilin adını veya doğrulama, dağıtma, çalıştırma ve yok etme komutlarını Databricks CLI ile çalıştırırken --profile veya -p seçeneklerini kullanarak belirtebilirsiniz.

  • Azure yönetilen kimlik doğrulaması için , azure_use_msive azure_client_id eşlemeleri azure_workspace_resource_idkullanılır. Alternatif olarak, bu değerleri sırasıyla , ARM_USE_MSIve ARM_CLIENT_IDDATABRICKS_AZURE_RESOURCE_IDyerel ortam değişkenlerinde ayarlayabilirsiniz. Alternatif olarak, azure_use_msi, azure_client_id ve azure_workspace_resource_id değerleriyle bir yapılandırma profili oluşturabilir ve ardından profile eşlemesi ile profilin adını belirtebilirsiniz (ya da Databricks CLI ile doğrulama, dağıtma, çalıştırma ve yok etme komutlarını çalıştırırken --profile veya -p seçeneklerini kullanarak). Bkz. Azure yönetilen kimlikleriyle kimlik doğrulaması.

  • azure_environment eşlemesi belirli bir API uç noktası kümesi için Azure ortam türünü (Genel, UsGov, Çin ve Almanya gibi) belirtir. Varsayılan değer şudur: PUBLIC. Alternatif olarak, bu değeri ARM_ENVIRONMENTyerel ortam değişkeninde ayarlayabilirsiniz. Ya da azure_environment değerini bir yapılandırma profiline ekleyebilir ve ardından eşleme ile profile profilin adını veya doğrulama, dağıtma, çalıştırma ve yok etme komutlarını Databricks CLI ile çalıştırırken --profile veya -p seçeneklerini kullanarak belirtebilirsiniz.

  • azure_login_app_id eşleme işlemsel değildir ve iç kullanım için ayrılmıştır.

izinler

Üst düzey permissions eşleme, pakette tanımlanan tüm kaynaklara uygulanacak bir veya daha fazla izin düzeyini belirtir. Belirli bir kaynağa izin uygulamak istiyorsanız bkz. Belirli bir kaynak için izinleri tanımlama.

İzin verilen en üst düzey izin düzeyleri , CAN_VIEWve CAN_MANAGE'dırCAN_RUN.

Paket yapılandırma dosyasındaki aşağıdaki örnek, pakette tanımlanan resources tüm kaynaklara uygulanan bir kullanıcı, grup ve hizmet sorumlusu için izin düzeylerini tanımlar:

permissions:
  - level: CAN_VIEW
    group_name: test-group
  - level: CAN_MANAGE
    user_name: someone@example.com
  - level: CAN_RUN
    service_principal_name: 123456-abcdef

Kaynaklar

Eşleme, resources paket tarafından kullanılan Azure Databricks kaynakları hakkındaki bilgileri belirtir.

Bu eşlemesi üst düzey bir eşleme olarak görünebilir veya üst düzey hedef eşlemesindeki hedeflerden birinin veya daha fazlasının alt öğesi olabilir vedesteklenen kaynak türlerinden sıfır veya birini içerir. Her bir kaynak türü eşlemesi, her biri benzersiz bir ada sahip olması gereken bir veya daha fazla bireysel kaynak bildirimi içerir. Bu tek tek kaynak bildirimleri, kaynağı tanımlamak için ilgili nesnenin oluşturma işleminin YAML ile ifade edilen istek yükünü kullanır. Bir kaynağın desteklenen özellikleri, ilgili nesnenin desteklenen alanlarıdır.

Oluşturma işlemi isteği yükleri, Databricks REST API Başvurusu'nda belgelenmiştir ve komutu desteklenen tüm nesne şemalarını çıkış olarak verir. Ayrıca, paket yapılandırma dosyalarında databricks bundle validate bilinmeyen kaynak özellikleri bulunursa komut uyarı döndürür.

Aşağıdaki örnek yapılandırma bir iş kaynağını tanımlar:

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
        - task_key: hello-task
          existing_cluster_id: 1234-567890-abcde123
          notebook_task:
            notebook_path: ./hello.py

Paketlerde desteklenen kaynaklar ve yaygın yapılandırma ve örnekler hakkında daha fazla bilgi için bkz. Databricks Varlık Paketleri kaynakları ve Paket yapılandırma örnekleri.

Hedef

Eşleme, targets Azure Databricks iş akışlarının çalıştırıldığı bir veya daha fazla bağlamı belirtir. Her bir hedef, özgün bir artefakt koleksiyonu, Azure Databricks çalışma alanı ayarları ve Azure Databricks iş veya işlem hattı ayrıntılarıdır.

Eşleme targets , bir veya birden fazla hedef eşlemeden oluşur ve her birinin benzersiz bir programatik (veya mantıksal) ada sahip olması gerekir.

Bu targets eşleme isteğe bağlıdır ancak kesinlikle önerilir. Belirtilirse, yalnızca üst düzey eşleme olarak görünebilir.

Üst düzey çalışma alanı, yapıtlar ve kaynak eşlemelerindeki ayarlar bir eşlemede targets belirtilmezse kullanılır, ancak çakışan ayarlar hedefteki ayarlar tarafından geçersiz kılınırsa.

Hedef,en üst düzey değişkenlerin değerlerini de geçersiz kılabilir.

varsayılan

Paket komutları için bir hedef varsayılanı belirtmek için default eşlemesini trueolarak ayarlayın. Örneğin, adlı dev bu hedef varsayılan hedeftir:

targets:
  dev:
    default: true

Varsayılan hedef yapılandırılmamışsa veya işleri veya işlem hatlarını belirli bir hedef içinde doğrulamak, dağıtmak ve çalıştırmak istiyorsanız paket komutlarının seçeneğini kullanın -t .

Aşağıdaki komutlar, my_job ve dev hedefleri içinde prod doğrular, dağıtır ve çalıştırır:

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

Aşağıdaki örnekte iki hedef bildirmektedir. İlk hedefin adı dev vardır ve paket komutları için hedef belirtilmediğinde kullanılan varsayılan hedeftir. İkinci hedefin adı prod olup, yalnızca bu hedef paket komutları için belirtildiğinde kullanılır.

targets:
  dev:
    default: true
  prod:
    workspace:
      host: https://<production-workspace-url>

modu ve ön ayarlar

Kolay geliştirme ve CI/CD en iyi uygulamalarını kolaylaştırmak için Databricks Varlık Paketleri, üretim öncesi ve üretim iş akışları için varsayılan davranışları ayarlayan hedefler için dağıtım modları sağlar. Bazı davranışlar da yapılandırılabilir. Ayrıntılar için bkz. Databricks Varlık Paketi dağıtım modları.

Tavsiye

Paketlerin çalıştırma kimliklerini ayarlamak için, 'de açıklandığı gibi her hedef için belirtebilirsiniz: "Databricks Varlık Paketleri iş akışı için bir çalıştırma kimliği belirtin".

Hedefin geliştirme hedefi olarak işleneceğini belirtmek için mode eşleme kümesini developmentolarak ekleyin. Hedefin üretim hedefi olarak işleneceğini belirtmek için mode eşleme kümesini productionolarak ekleyin. Örneğin, adlı prod bu hedef bir üretim hedefi olarak değerlendirilir:

targets:
  prod:
    mode: production

Eşlemeyi presets kullanarak bazı davranışları özelleştirebilirsiniz. Kullanılabilir ön ayarların listesi için bkz. Özel ön ayarlar. Aşağıdaki örnekte, tüm üretim kaynaklarına ön ek ekleyen ve etiketleyen özelleştirilmiş bir üretim hedefi gösterilmektedir:

targets:
  prod:
    mode: production
    presets:
      name_prefix: 'production_' # prefix all resource names with production_
      tags:
        prod: true

Hem mode hem de presets ayarlanırsa, ön ayarlar varsayılan mod davranışını geçersiz kılar. Tek tek kaynakların ayarları, ön ayarları geçersiz kılar. Örneğin, bir zamanlama UNPAUSEDolarak ayarlanmışsa ancak trigger_pause_status ön ayarı PAUSEDolarak ayarlanırsa, zamanlama duraklatılmaktan çıkar.