Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara menggunakan run_as pengaturan untuk menentukan identitas yang akan digunakan saat menjalankan alur kerja Bundel Otomatisasi Deklaratif.
Pengaturan run_as dapat dikonfigurasi sebagai pemetaan tingkat atas untuk diterapkan ke sumber daya, atau di dalam pemetaan penyebaran target dalam file konfigurasi bundel. Ini dapat diatur ke user_name atau service_principal_name. (Non-admin hanya dapat mengatur bidang ini ke email mereka sendiri.)
Pengaturan ini menyediakan kemampuan untuk memisahkan identitas yang digunakan untuk menyebarkan tugas bundel atau jalur pemrosesan dari yang digunakan oleh alur kerja tugas atau pipeline untuk menjalankannya. Ini meningkatkan fleksibilitas pengembangan dan manajemen bundel, sekaligus memungkinkan batasan dibuat untuk penyebaran dan menjalankan operasi. Secara khusus:
- Jika identitas yang digunakan untuk menyebarkan bundel sama dengan identitas yang dikonfigurasi dalam pengaturan bundel,
run_astidak ada batasan. Semua sumber daya bundel didukung. - Jika identitas yang digunakan untuk menyebarkan bundel berbeda dari identitas yang dikonfigurasi dalam pengaturan bundel
run_as, hanya pekerjaan dan alur yang didukung.
Mengatur identitas jalankan bundel
Untuk mengatur identitas eksekusi sumber daya bundel, tentukan run_as sebagai pemetaan tingkat atas seperti yang ditunjukkan dalam contoh berikut:
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'
Penting
Pengaturan run_as tidak didukung untuk model yang melayani titik akhir. Kesalahan terjadi jika sumber daya ini didefinisikan dalam bundel tempat run_as juga dikonfigurasi.
Tetapkan identitas penyebaran target
Ini adalah praktik terbaik untuk mengonfigurasi identitas eksekusi untuk penyebaran target penahapan dan produksi. Selain itu, mengatur run_as identitas ke perwakilan layanan untuk target produksi adalah cara paling aman untuk menjalankan alur kerja produksi karena:
- Memastikan bahwa alur kerja disebarkan oleh perwakilan layanan yang sama atau oleh seseorang dengan izin CAN_USE pada perwakilan layanan itu sendiri.
- Memisahkan izin untuk menjalankan alur kerja produksi dari identitas yang membuat atau menyebarkan bundel.
- Memungkinkan pengguna untuk mengonfigurasi dan menyiapkan prinsipal layanan dengan izin yang lebih sedikit dalam lingkungan produksi dibandingkan dengan identitas yang digunakan untuk menyebarkan bundel produksi.
Dalam contoh databricks.yml file konfigurasi berikut, tiga mode target telah dikonfigurasi: pengembangan, penahapan, dan produksi. Mode pengembangan dikonfigurasi untuk berjalan sebagai pengguna individual, dan mode penahapan dan produksi dikonfigurasi untuk berjalan menggunakan dua 'service principal' yang berbeda. Perwakilan layanan selalu dalam bentuk ID aplikasi, yang dapat diambil dari halaman Perwakilan layanan di pengaturan admin ruang kerja Anda.
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'