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.yml
en 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.yml
bir 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 DEFAULT
adlı 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 development
olarak 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 bundle
validate
deploy
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ış deponuzdangit 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ış deponuzdangit 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 git
bundle
:
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
type
olarak ayarlanmadığı sürece değişkenlerin complex
tü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 /Workspace
ile /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}/artifacts
kullanı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}/files
kullanı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,
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 haleprofile
getirir. Eşlemeyihost
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şenhost
alana sahip birden çok profil varsa, Databricks CLI'ye hangi profilin kullanılacağını bildirmek için eşlemeyi (veya.databrickscfg
veyaprofile
komut satırı seçeneklerini) kullanmanız--profile
-p
gerekir. Örnek için örneklerdeprod
hedef 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ğeriDATABRICKS_CLIENT_ID
yerel ortam değişkeninde ayarlayabilirsiniz. Ya da değeriyleclient_id
bir yapılandırma profili oluşturabilir ve ardından eşlemeyleprofile
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_SECRET
ayarlayın. Ya da değeri bir yapılandırma profiline ekleyebilirclient_secret
ve ardından eşlemeyleprofile
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ğeriDATABRICKS_AZURE_RESOURCE_ID
yerel ortam değişkeninde ayarlayabilirsiniz. Ya da değeriyleazure_workspace_resource_id
bir yapılandırma profili oluşturabilir ve ardından eşlemeyleprofile
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_id
veazure_tenant_id
eşlemeleriazure_client_id
kullanılır. Alternatif olarak, bu değerleri sırasıyla ,DATABRICKS_AZURE_RESOURCE_ID
veARM_TENANT_ID
ARM_CLIENT_ID
yerel ortam değişkenlerinde ayarlayabilirsiniz. Ya daazure_workspace_resource_id
,azure_tenant_id
veazure_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_SECRET
ayarlayın. Ya da değeri bir yapılandırma profiline ekleyebilirazure_client_secret
ve ardından eşlemeyleprofile
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_msi
veazure_client_id
eşlemeleriazure_workspace_resource_id
kullanılır. Alternatif olarak, bu değerleri sırasıyla ,ARM_USE_MSI
veARM_CLIENT_ID
DATABRICKS_AZURE_RESOURCE_ID
yerel ortam değişkenlerinde ayarlayabilirsiniz. Ya daazure_use_msi
,azure_client_id
veazure_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ğeriARM_ENVIRONMENT
yerel ortam değişkeninde ayarlayabilirsiniz. Ya da değeri bir yapılandırma profiline ekleyebilirazure_environment
ve ardından eşlemeyleprofile
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_VIEW
ve 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 bunuwhl
olarak 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ınsetup.py
dosyasının yoludur.path
dahil değilse Databricks CLI, Paketin kökünde Python tekerlek dosyasınınsetup.py
dosyasını bulmaya çalışır. -
files
, altsource
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 Pythonwheel
paketinin yerel bir yüklemesini bulabileceğini varsayar ve her paket dağıtımı sırasında varsayılan olarak komutunupython 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 .yml
biten 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
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 birinclude
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ırainclude
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/dist
dosya dışındaki dosya uzantısına *.whl
sahip 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
varsayılan
Paket komutları için bir hedef varsayılanı belirtmek için default
eşlemesini true
olarak 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_as
iç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 development
olarak ekleyin. Hedefin üretim hedefi olarak işleneceğini belirtmek için mode
eşleme kümesini production
olarak 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 UNPAUSED
olarak ayarlanmışsa ancak trigger_pause_status
ön ayarı PAUSED
olarak ayarlanırsa, zamanlama duraklatılmaktan çıkar.