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, run_as ayarını kullanarak Bildirime Dayalı Otomasyon Paketleri iş akışları çalıştırılırken kullanılacak kimliği belirtmenin nasıl yapılacağı açıklanmaktadır.
Ayarrun_as, kaynaklara uygulanacak en üst düzey eşleme olarak veya paket yapılandırma dosyasındaki dağıtım targeteşlemesi içinde yapılandırılabilir.
user_name veya service_principal_name olarak ayarlanabilir. (Yönetici olmayanlar bu alanı yalnızca kendi e-postalarına ayarlayabilir.)
Bu ayar, bir paket işi veya işlem hattını dağıtmak için kullanılan kimliği, çalıştırılması için iş veya işlem hattı iş akışı tarafından kullanılan kimlikten ayırmanıza olanak sağlar. Bu, paket geliştirme ve yönetimi esnekliğini artırırken dağıtımlar ve çalıştırmalar için korumalar oluşturulmasına da olanak sağlar. Özellikle:
- Paketi dağıtmak için kullanılan kimlik, paketin ayarında
run_asyapılandırılan kimlikle aynıysa hiçbir kısıtlama yoktur. Tüm paket kaynakları desteklenir. - Bir paketi dağıtmak için kullanılan kimlik, paketin ayarında
run_asyapılandırılan kimlikten farklıysa, yalnızca işler ve işlem hatları desteklenir.
Paket çalıştırma kimliği ayarla
Paket kaynaklarının çalıştırma kimliğini ayarlamak için, aşağıdaki örnekte gösterildiği gibi en üst düzey eşleme olarak belirtin run_as :
bundle:
name: 'run_as'
# This is the identity that will be used when "databricks bundle run my_test_job_1" is executed.
run_as:
service_principal_name: '5cf3z04b-a73c-4x46-9f3d-52da7999069e'
resources:
jobs:
my_test_job_1:
name: Test job 1
tasks:
- task_key: 'task_1'
new_cluster:
num_workers: 1
spark_version: 13.2.x-snapshot-scala2.12
node_type_id: i3.xlarge
runtime_engine: PHOTON
notebook_task:
notebook_path: './test.py'
my_test_job_2:
name: Test job 2
run_as: # This is the identity that will be used when "databricks bundle run my_test_job_2" is executed.
service_principal_name: '69511ed2-zb27-444c-9863-4bc8ff497637'
tasks:
- task_key: 'task_2'
notebook_task:
notebook_path: './test.py'
Önemli
Model sunum uç noktaları için run_as ayarı desteklenmez.
run_as ile yapılandırılmış bir pakette bu kaynaklar da tanımlanırsa bir hata oluşur.
Hedef dağıtım kimliklerini ayarlama
Ön hazırlık ve üretim hedefi dağıtımları için çalıştırma kimliklerini yapılandırmak en iyi uygulamadır. Ayrıca, üretim hedefleri için bir hizmet sorumlusuna run_as kimlik ayarlamak, üretim iş akışını şu şekilde çalıştırmanın en güvenli yoludur:
- Bu, iş akışının ya aynı hizmet sorumlusu ya da hizmet sorumlusu üzerinde CAN_USE izinlerine sahip biri tarafından dağıtıldığını garanti eder.
- Üretim iş akışını çalıştırma iznini, paketi oluşturan veya dağıtan kimlikten ayırır.
- Kullanıcıların üretim paketini dağıtmak için kullanılan kimlikten daha az izinle üretim için bir hizmet sorumlusu yapılandırmasına ve ayarlamasına olanak tanır.
Aşağıdaki örnek databricks.yml yapılandırma dosyasında üç hedef modu yapılandırılmıştır: geliştirme, hazırlama ve üretim. Geliştirme modu tek bir kullanıcı olarak çalışacak şekilde yapılandırılır ve hazırlama ve üretim modları iki farklı hizmet sorumlusu kullanılarak çalıştırılacak şekilde yapılandırılır. Hizmet sorumluları her zaman bir uygulama kimliği biçimindedir ve bu kimlik çalışma alanı yönetici ayarlarınızdaki bir Hizmet sorumlusunun sayfasından alınabilir.
bundle:
name: my_targeted_bundle
run_as:
service_principal_name: '5cf3z04b-a73c-4x46-9f3d-52da7999069e'
targets:
# Development deployment settings, set as the default
development:
mode: development
default: true
workspace:
host: https://my-host.cloud.databricks.com
run_as:
user_name: someone@example.com
# Staging deployment settings
staging:
workspace:
host: https://my-host.cloud.databricks.com
root_path: /Shared/staging-workspace/.bundle/${bundle.name}/${bundle.target}
run_as:
service_principal_name: '69511ed2-zb27-444c-9863-4bc8ff497637'
# Production deployment settings
production:
mode: production
workspace:
host: https://my-host.cloud.databricks.com
root_path: /Shared/production-workspace/.bundle/${bundle.name}/${bundle.target}
run_as:
service_principal_name: '68ed9cd5-8923-4851-x0c1-c7536c67ff99'
resources:
jobs:
my_test_job:
name: Test job
tasks:
- task_key: 'task'
new_cluster:
num_workers: 1
spark_version: 13.3.x-cpu-ml-scala2.12
node_type_id: i3.xlarge
runtime_engine: STANDARD
notebook_task:
notebook_path: './test.py'