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.

Genel Bakış

Paket yapılandırma dosyası YAML biçiminde ifade edilmeli ve en azından en üst düzey paket eşlemesini içermelidir. Her paket, adlı databricks.ymlen az bir (ve yalnızca bir) paket yapılandırma dosyası içermelidir. Birden çok paket yapılandırma dosyası varsa, bunlar eşleme kullanılarak databricks.yml dosya tarafından include başvurulmalıdır.

Üst düzey eşlemelerin her birinin ayrıntıları için bkz. Eşlemeler.

YAML hakkında daha fazla bilgi için resmi YAML belirtimi ve öğreticisine bakın.

Ş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
  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.

Örnekler

Not

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ı, adlı hello.py bu yerel paket yapılandırma dosyasıyla aynı dizinde bulunan adlı databricks.ymlbir yerel dosyayı belirtir. Bu not defterini, belirtilen küme kimliğine sahip uzak kümeyi kullanarak bir iş olarak çalıştırır. Uzak çalışma alanı URL'si ve çalışma alanı kimlik doğrulaması kimlik bilgileri, çağıranın DEFAULTadlı yerel yapılandırma profilinden okunur.

Databricks, paket yapılandırma dosyalarınızı daha taşınabilir hale getirdiğinden mümkün olduğunca eşleme yerine host eşlemeyi kullanmanızı default ö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 host eşleşen .databrickscfg bir alana sahip birden çok profil varsa, Databricks CLI'ya hangi profilin kullanılacağını bildirmek için öğesini kullanmanız profile gerekir. Bir örnek için bu bölümün devamında yer alan prod hedef bildirimine bakın.

Bu teknik, bloktaki iş tanımlarını ve ayarlarını geçersiz kılmanın yanı sıra yeniden kullanmanıza resources da olanak tanır:

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 paket yapılandırma dosyası işlevsel olarak eşdeğer olsa da, modüler hale getirilmemiştir ve bu da iyi yeniden kullanımı etkinleştirmez. Ayrıca, bu bildirim var olan işi geçersiz kılma yerine işe bir görev ekler:

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

Aşağıdaki örnek, çağrı yapanın prod dosyasındaki, belirtilen çalışma alanı URL'si ile eşleşen .databrickscfg girişinden okunan farklı bir uzak çalışma alanı URL'si ve kimlik doğrulama bilgilerini kullanan host adlı hedefi ekler. Bu iş aynı not defterini çalıştırır ancak belirtilen küme kimliğine sahip farklı bir uzak küme kullanır. Eşlemenin eşleme içinde notebook_task açıkça geçersiz kılınmaması durumunda eşlemeyi üst düzey prod eşleme içinde kullanmaya notebook_task geri döndüğünden eşleme içinde eşlemeyi resources bildirmeniz notebook_task gerekmediğine prod dikkat edin.

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 dev çalıştırmak için:

# 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 hedef içinde 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

Aşağıda önceki örnek verilmiştir, ancak daha da modüler hale getirme ve birden çok paket yapılandırma dosyası arasında daha iyi yeniden kullanım için bileşen dosyalarına ayrılmıştır. Bu teknik, çeşitli tanımları ve ayarları yeniden kullanmanıza olanak tanır, aynı zamanda bu dosyalardan herhangi birini tamamen farklı bildirimler sağlayan diğer dosyalarla değiştirebilirsiniz:

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

Eşleştirmeleri

Aşağıdaki bölümlerde, üst düzey eşlemeye göre paket yapılandırma dosyası söz dizimi açıklanmaktadır.

bohça

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 örnekte programlı (veya mantıksal) adlı bir paket bildirmektedir hello-bundle.

bundle:
  name: hello-bundle

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

cluster_id

Eşlemenin bundle alt eşlemesi cluster_id 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. Bir kümenin kimliğini alma hakkında bilgi için bkz . Küme 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 bkz . hedefler.

compute_id

Not

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

Eşlemenin bundle alt eşlemesi compute_id 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.

aptal

Paketinizle ilişkili Git sürüm denetimi ayrıntılarını alabilir ve geçersiz kılabilirsiniz. Bu, dağıtılan kaynaklarınıza ek açıklama ekleme için kullanışlıdır. Örneğin, deponuzun kaynak URL'sini dağıttığınız bir makine öğrenmesi modelinin açıklamasına eklemek isteyebilirsiniz.

gibi bundlevalidatedeploy bir run komutu her çalıştırdığınızdabundle, komut 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. Bu değere, olarak paket yapılandırma dosyalarınızla başvurmak için değiştirmeleri${bundle.git.origin_url}.
  • 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. Bu değere, olarak paket yapılandırma dosyalarınızla başvurmak için değiştirmeleri${bundle.git.branch}.

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.

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

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ğer paket eşlemesinde belirtilen sınırlar içinde değilse, pakette databricks_cli_version yürütürken databricks bundle validate 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

Değişken

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>

Not

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ı veya /Workspaceile /Volumes başlar. Özel çalışma alanı yollarına otomatik olarak ön ek eklenir /Workspace. Bu nedenle, gibi ${workspace.file_path}özel yolunuzda herhangi bir çalışma alanı yolu değişimi kullanırsanız yola önceden /Workspace eklemeniz gerekmez.

root_path

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 için root_path değiştirmeleri kullanan varsayılan yolunu /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/${bundle.target}kullanır.

artifact_path

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 bir eşleme de içerebilir artifact_path , örneğin:

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

Varsayılan olarak, Databricks CLI için artifact_path değiştirmeleri kullanan varsayılan yolunu ${workspace.root}/artifactskullanır.

Not

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

file_path

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 için file_path değiştirmeleri kullanan varsayılan yolunu ${workspace.root}/fileskullanır.

state_path

Eşleme state_path varsayılan olarak öğesinin varsayılan yolunu ${workspace.root}/state kullanır ve dağıtımlar hakkındaki Terraform durum bilgilerini depolamak için çalışma alanınızdaki 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 eşlemede en üst düzey hedef eşlemesindeki workspace bir veya daha fazla hedefin alt öğesi olarak 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 özel değişken belirtemezsiniz.

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

    Not

    Databricks, eşleme yerine eşlemeyi host (veya --profile paket doğrulama, dağıtma, çalıştırma ve yok etme komutlarını Databricks CLI ile çalıştırırken veya -p seçeneklerini) kullanmanızı önerir, bu da paket yapılandırma dosyalarınızı daha taşınabilir hale profile getirir. 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 örneklerde prodhedef bildirimine bakın.

  • Eşleme, 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 değeriyle client_id bir yapılandırma profili oluşturabilir ve ardından eşlemeyle profile 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 veya --profile seçeneklerini kullanarak-p). Bkz. OAuthkullanarak bir hizmet sorumlusu aracılığıyla Azure Databricks kaynaklarına katılımsız erişime yetki verme.

    Not

    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 değeri bir yapılandırma profiline ekleyebilir client_secret ve ardından eşlemeyle profile profilin adını belirtebilirsiniz (veya databricks CLI ile doğrulama, dağıtma, çalıştırma ve yok etme komutlarını çalıştırırken veya --profile seçeneklerini kullanarak-p).

  • 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 değeriyle azure_workspace_resource_id bir yapılandırma profili oluşturabilir ve ardından eşlemeyle profile 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 veya --profile seçeneklerini kullanarak-p). Bkz. Azure CLI kimlik doğrulaması.

  • Hizmet sorumlularıyla Azure istemci gizli anahtarı kimlik doğrulaması için , azure_workspace_resource_idve azure_tenant_id eşlemeleri azure_client_idkullanılır. Alternatif olarak, bu değerleri sırasıyla , DATABRICKS_AZURE_RESOURCE_IDve ARM_TENANT_IDARM_CLIENT_IDyerel ortam değişkenlerinde ayarlayabilirsiniz. Ya da azure_workspace_resource_id, azure_tenant_idve azure_client_id değerleriyle bir yapılandırma profili oluşturabilir ve ardından profilin adını profile eşlemesi ile belirtebilir (ya da paketi doğrularken --profile veya -p seçeneklerini kullanarak Databricks CLI ile komutları doğrulayabilir, dağıtabilir, çalıştırabilir ve yok edebilirsiniz). Bkz. MS Entra hizmet sorumlusu kimlik doğrulaması.

    Not

    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 değeri bir yapılandırma profiline ekleyebilir azure_client_secret ve ardından eşlemeyle profile profilin adını belirtebilirsiniz (veya databricks CLI ile doğrulama, dağıtma, çalıştırma ve yok etme komutlarını çalıştırırken veya --profile seçeneklerini kullanarak-p).

  • 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. Ya da azure_use_msi, azure_client_idve azure_workspace_resource_id değerleriyle bir yapılandırma profili oluşturabilir ve ardından profilin adını profile eşlemesi ile belirtebilir (ya da paketi doğrularken --profile veya -p seçeneklerini kullanarak Databricks CLI ile komutları doğrulayabilir, dağıtabilir, çalıştırabilir ve yok edebilirsiniz). Bkz. Azure yönetilen kimlikleri 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 değeri bir yapılandırma profiline ekleyebilir azure_environment ve ardından eşlemeyle profile profilin adını belirtebilirsiniz (veya databricks CLI ile doğrulama, dağıtma, çalıştırma ve yok etme komutlarını çalıştırırken veya --profile seçeneklerini kullanarak-p).

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

  • auth_type eşlemesi, özellikle Databricks CLI'sinin beklenmeyen bir kimlik doğrulama türü çıkardığı durumlarda kullanılacak Azure Databricks kimlik doğrulama türünü belirtir. azure databricks kaynaklarına erişimi yetkilendirme bölümüne bakın.

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 işlere, işlem hatlarına, denemelere ve modellere 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

Yapı

Ü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 alt yapıt 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 tekerleği derlemeleri için Python tekerlek dosyasının setup.py dosyasının yoludur. path dahil değilse Databricks CLI, Paketin kökünde Python tekerlek dosyasının setup.py dosyasını bulmaya çalışır.
  • 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. Birden çok derleme komutu belirtmek için her komutu çift ve işareti (&&) karakterle ayırın.

Aşağıdaki örnek yapılandırma, Şiir kullanarak bir tekerlek oluşturur. Tekerlek oluşturmak için artifacts kullanan eksiksiz bir örnek paket için bkz. Databricks Asset Bundles kullanarak Python tekerlek dosyası geliştirme.

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

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

İpucu

Databricks Varlık Paketleribölümünde açıklandığı gibi, paketlerde yapıt ayarlarını tanımlayabilir, birleştirebilir ve geçersiz kılma işlemlerini gerçekleştirebilirsiniz.

kapsamak

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 include içine eklenecek tüm yapılandırma dosyalarını( dosyanın kendisi dışında) belirtmek için dizisini databricks.yml 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"

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 kaynak türü eşlemesi, her birinin benzersiz bir ada sahip olması gereken bir veya daha fazla 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 belgelenir ve databricks bundle schema komut desteklenen tüm nesne şemalarının çıkışını oluşturur. 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.

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:

  • .gitignore eşlemesi, paketin kökündeki bir include dosyasındaki dosya ve yol globları listesine bağlı olarak, açıkça dahil etmek için paketin köküne göre dosya glob'ları, yol glob'ları veya her ikisini de içerebilir.
  • Paketin kökündeki bir .gitignore dosyasındaki dosya ve yol glob'larının listesinin yanı sıra include eşlemesindeki dosya ve yol glob'larının listesine bağlı olarak, exclude eşlemesi paketin köküne göre açıkça hariç tutulacak dosya ve/veya yol glob'ları içerebilir.

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

ve include dosya ve yol desenlerinin söz dizimi exclude standart .gitignore desen söz dizimini izler. Bkz . gitignore Desen Biçimi.

Ö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, adlı my_package/distdosya dışındaki dosya uzantısına *.whlsahip klasördeki tüm dosyalar delete-me.whl eklenir. Klasördeki my_package/dist diğer dosyalar da dahil değildir.

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

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

Yol

Eşleme, sync ç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ı içinde paket kökünün üstündeki bir üst dizine yükselirse, 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ü adlandırılmışsa my_bundle içindeki bu yapılandırma databricks.yml , paket kökü ile paket kökünü bir düzey üzerinde bulunan klasörü eşitler common :

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/
    ...

Hedef

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

Eşleme targets , her birinin benzersiz bir programlı (veya mantıksal) ada sahip olması gereken bir veya daha fazla hedef eşlemeden oluşur.

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 ve hedefleri içinde my_job doğrulanır, dağıtılır ve dev çalıştırılırprod:

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 hedef ada prod sahiptir ve yalnızca paket komutları için bu hedef 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ı.

İpucu

Paketlerin çalıştırma kimliklerini ayarlamak için, run_asiçin bir çalıştırma kimliği belirtme bölümünde açıklandığı gibi her hedef için belirtebilirsiniz.

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 kullanarak presets 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.