تحديد هوية تشغيل لسير عمل Databricks Asset Bundles
توضح هذه المقالة كيفية استخدام run_as
الإعداد لتحديد الهوية التي يجب استخدامها عند تشغيل مهام سير عمل Databricks Asset Bundles.
run_as
يمكن تكوين الإعداد كخرائط ذات مستوى أعلى لتطبيقه على الموارد، أو ضمن target
تعيين توزيع في ملف تكوين مجموعة. يمكن تعيينه إلى user_name
أو service_principal_name
.
يوفر هذا الإعداد القدرة على فصل الهوية المستخدمة لنشر مهمة مجموعة أو مسار من تلك التي تستخدمها المهمة أو سير عمل المسار للتشغيل. وهذا يزيد من مرونة تطوير المجموعة وإدارتها، مع السماح أيضا بإنشاء حواجز حماية للنشر وتشغيلها. وبشكل خاص:
- إذا كانت الهوية المستخدمة لنشر حزمة هي نفس الهوية التي تم تكوينها في إعداد المجموعة
run_as
، فلا توجد قيود. يتم دعم جميع موارد المجموعة. - إذا كانت الهوية المستخدمة لنشر مجموعة مختلفة عن الهوية التي تم تكوينها في إعداد المجموعة
run_as
، يتم دعم مجموعة فرعية فقط من موارد المجموعة. البنية الأساسية لبرنامج ربط العمليات التجارية ونقاط نهاية خدمة النموذج غير مدعومة.
لتعيين هوية التشغيل لموارد المجموعة، حدد run_as
كخرائط ذات مستوى أعلى كما هو موضح في المثال التالي:
bundle:
name: "run_as"
# This is the identity that will be used when "databricks bundle run my_test_job" 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:
service_principal_name: "69511ed2-zb27-444c-9863-4bc8ff497637"
tasks:
- task_key: "task_2"
notebook_task:
notebook_path: "./test.py"
هام
run_as
الإعداد غير مدعوم للبنية الأساسية لبرنامج ربط العمليات التجارية أو نقاط نهاية خدمة النموذج. يحدث خطأ إذا تم تعريف هذه الموارد في مجموعة حيث run_as
تم تكوينها أيضا.
من أفضل الممارسات تكوين هويات التشغيل للتشغيل المرحلي وتوزيع هدف الإنتاج. بالإضافة إلى ذلك، يعد تعيين run_as
هوية إلى كيان خدمة لأهداف الإنتاج الطريقة الأكثر أمانا لتشغيل سير عمل الإنتاج كما هو:
- يضمن أن سير العمل قد تم نشره بواسطة نفس كيان الخدمة أو من قبل شخص له أذونات CAN_USE على كيان الخدمة نفسه.
- فصل الإذن لتشغيل سير عمل الإنتاج عن الهوية التي أنشأت الحزمة أو نشرتها.
- يسمح للمستخدمين بتكوين وتعيين كيان خدمة للإنتاج بأذونات أقل من الهوية المستخدمة لنشر مجموعة الإنتاج.
في ملف التكوين المثال databricks.yml
التالي، تم تكوين ثلاثة أوضاع هدف: التطوير والتقسيم المرحلي والإنتاج. يتم تكوين وضع التطوير للتشغيل كمستخدم فردي، ويتم تكوين أوضاع التشغيل المرحلي والإنتاج للتشغيل باستخدام أساسيين مختلفين للخدمة. تكون أساسيات الخدمة دائما في شكل معرف تطبيق، والذي يمكن استرداده من صفحة كيان الخدمة في إعدادات مسؤول مساحة العمل.
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"