Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
- run_as
- dahil etme
- Komut dosyaları
- Eşitleme
- Eserler
- Değişken
- çalışma alanı
- izinler
- Kaynaklar
- Hedef
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ış deponuzdangit config --get remote.origin.urlkomutunu ç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ış deponuzdangit branch --show-currentkomutunu ç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
.gitignoredosyasında bulunan dosya ve yol globlarının herhangi bir listesine bağlı olarak,includeharitalandı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
.gitignoredosyadaki dosya ve yol glob'larının listesinin yanı sıra eşlemedekiincludedosya ve yol globlarının listesine bağlı olarak,excludeeş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
typegereklidir. Dağıtmadan önce bir Python tekerlek dosyası oluşturmak için bunuwhlolarak ayarlayın. Diğer yapıtları oluşturmak için bu ayarın belirtilmesi gerekmez. -
pathisteğ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ınsetup.pydosyasının yoludur. Eğerpathdahil edilmemişse, Databricks CLI, Python wheel dosyasınınsetup.pydosyasını paketin kökünde bulmayı dener. -
files, altsourceeş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 Pythonwheelpaketinin 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. 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.pyveyapyproject.tomlsürümlerini güncelleştirmeye gerek kalmadan daha sonra dağıtılabilir. Ayar yalnızcatypewhlolarak 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,
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,
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,
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.
profileeşleme (veya--profileya da-pseç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,
hosteşlemesi yerine--profileeşlemesini (veya paket doğrulama, dağıtma, çalıştırma ve yok etme komutlarını Databricks CLI ile çalıştırırken-pveyaprofileseçeneklerini) kullanmanızı önerir. Eşlemeyihostayarlamak, Databricks CLI'ya dosyanızda.databrickscfgeş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şenhostalana sahip birden çok profil varsa, Databricks CLI'ye hangi profilin kullanılacağını bildirmek için eşlemeyi (veya.databrickscfgveyaprofilekomut satırı seçeneklerini) kullanmanız--profile-pgerekir. Örnek içinprodhedef bildirimine bakın.
Eşleştirme,
hostAzure 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_idkullanılır. Alternatif olarak, bu değeriDATABRICKS_CLIENT_IDyerel ortam değişkeninde ayarlayabilirsiniz. Ya daclient_iddeğeriyle bir yapılandırma profili oluşturabilir ve ardındanprofileeş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--profileveya-pseç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 daclient_secretdeğerini bir yapılandırma profiline ekleyebilir ve ardından eşleme ileprofileprofilin adını veya doğrulama, dağıtma, çalıştırma ve yok etme komutlarını Databricks CLI ile çalıştırırken--profileveya-pseçeneklerini kullanarak belirtebilirsiniz.Azure CLI kimlik doğrulaması için eşleme
azure_workspace_resource_idkullanılır. Alternatif olarak, bu değeriDATABRICKS_AZURE_RESOURCE_IDyerel ortam değişkeninde ayarlayabilirsiniz. Ya daazure_workspace_resource_iddeğeriyle bir yapılandırma profili oluşturabilir ve ardındanprofileeş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--profileveya-pseç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_idveazure_client_ideşlemeleri kullanılır. Alternatif olarak, bu değerleri sırasıyla ,DATABRICKS_AZURE_RESOURCE_IDveARM_TENANT_IDARM_CLIENT_IDyerel ortam değişkenlerinde ayarlayabilirsiniz. Alternatif olarak,azure_workspace_resource_id,azure_tenant_idveazure_client_iddeğerleriyle bir yapılandırma profili oluşturabilir ve ardındanprofileeş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--profileveya-pseç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 daazure_client_secretdeğerini bir yapılandırma profiline ekleyebilir ve ardından eşleme ileprofileprofilin adını veya doğrulama, dağıtma, çalıştırma ve yok etme komutlarını Databricks CLI ile çalıştırırken--profileveya-pseçeneklerini kullanarak belirtebilirsiniz.Azure yönetilen kimlik doğrulaması için ,
azure_use_msiveazure_client_ideşlemeleriazure_workspace_resource_idkullanılır. Alternatif olarak, bu değerleri sırasıyla ,ARM_USE_MSIveARM_CLIENT_IDDATABRICKS_AZURE_RESOURCE_IDyerel ortam değişkenlerinde ayarlayabilirsiniz. Alternatif olarak,azure_use_msi,azure_client_idveazure_workspace_resource_iddeğerleriyle bir yapılandırma profili oluşturabilir ve ardındanprofileeş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--profileveya-pseçeneklerini kullanarak). Bkz. Azure yönetilen kimlikleriyle kimlik doğrulaması.azure_environmenteş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_ENVIRONMENTyerel ortam değişkeninde ayarlayabilirsiniz. Ya daazure_environmentdeğerini bir yapılandırma profiline ekleyebilir ve ardından eşleme ileprofileprofilin adını veya doğrulama, dağıtma, çalıştırma ve yok etme komutlarını Databricks CLI ile çalıştırırken--profileveya-pseçeneklerini kullanarak belirtebilirsiniz.azure_login_app_ideşleme işlemsel değildir ve iç kullanım için ayrılmıştır.
-
auth_typeeş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. Bkz. Azure Databricks kaynaklarına erişimi yetkilendirme.
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
Oluşturma işlemi isteği yükleri, Databricks REST API Başvurusu'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
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,
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.