إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تدعم Databricks Asset Bundles الاستبدالات والمتغيرات المخصصة، ما يجعل ملفات تكوين الحزمة الخاصة بك أكثر نمطية وقابلة لإعادة الاستخدام. تمكن كل من الاستبدالات والمتغيرات المخصصة من الاسترداد الديناميكي للقيم بحيث يمكن تحديد الإعدادات في وقت نشر الحزمة وتشغيلها.
تلميح
يمكنك أيضا استخدام مراجع القيمة الديناميكية لقيم معلمات الوظيفة لتمرير سياق حول تشغيل وظيفة إلى مهام الوظيفة. راجع ما هو مرجع القيمة الديناميكية؟ ومعلمات المهام.
استبدال
يمكنك استخدام الاستبدالات لاسترداد قيم الإعدادات التي تتغير استنادا إلى سياق نشر المجموعة وتشغيلها.
على سبيل المثال، عند تشغيل bundle validate --output json الأمر، قد ترى رسما بيانيا مثل هذا:
{
"bundle": {
"name": "hello-bundle",
"target": "dev",
"...": "..."
},
"workspace": {
"...": "...",
"current_user": {
"...": "...",
"userName": "someone@example.com",
"...": "...",
},
"...": "..."
},
"...": {
"...": "..."
}
}
يمكن استخدام القوالب الفرعية للإشارة إلى قيم حقول الحزمة nameوالحزمة targetومساحة userName العمل لإنشاء مساحة root_path العمل في ملف تكوين المجموعة:
bundle:
name: hello-bundle
workspace:
root_path: /Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}
# ...
targets:
dev:
default: true
يمكنك أيضا إنشاء استبدالات للموارد المسماة. على سبيل المثال، بالنسبة للمسار الذي تم تكوينه بالاسم my_pipeline، ${resources.pipelines.my_pipeline.target} هو استبدال لقيمة الهدف من my_pipeline.
لتحديد الاستبدالات الصالحة، يمكنك استخدام التسلسل الهرمي للمخطط الموثق في مرجع REST API أو إخراج bundle schema الأمر.
فيما يلي بعض الاستبدالات شائعة الاستخدام:
${bundle.name}${bundle.target} # Use this substitution instead of ${bundle.environment}${workspace.host}${workspace.current_user.short_name}${workspace.current_user.userName}${workspace.file_path}${workspace.root_path}${resources.jobs.<job-name>.id}${resources.models.<model-name>.name}${resources.pipelines.<pipeline-name>.name}
المتغيرات المخصصة
يمكنك تحديد كل من المتغيرات المخصصة البسيطة والمعقدة في مجموعتك لتمكين الاسترداد الديناميكي للقيم المطلوبة للعديد من السيناريوهات. يتم الإعلان عن المتغيرات المخصصة في ملفات تكوين الحزمة variables الخاصة بك داخل التعيين. راجع المتغيرات.
يحدد تكوين المثال التالي المتغيرات my_cluster_id و my_notebook_path:
variables:
my_cluster_id:
description: The ID of an existing cluster.
default: 1234-567890-abcde123
my_notebook_path:
description: The path to an existing notebook.
default: ./hello.py
إذا لم توفر default قيمة لمتغير كجزء من هذا الإعلان، يجب تعيينه عند تنفيذ أوامر المجموعة، من خلال متغير بيئة، أو في مكان آخر داخل ملفات تكوين المجموعة كما هو موضح في تعيين قيمة متغير.
للإشارة إلى متغير مخصص داخل تكوين الحزمة، استخدم استبدال ${var.<variable_name>}المتغير . على سبيل المثال، للإشارة إلى المتغيرات my_cluster_id و my_notebook_path:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: ${var.my_cluster_id}
notebook_task:
notebook_path: ${var.my_notebook_path}
تعيين قيمة متغير
إذا لم تقم بتوفير default قيمة لمتغير، أو إذا كنت تريد تجاوز default قيمة متغير مؤقتا، فوفر القيمة المؤقتة الجديدة للمتغير باستخدام أحد الأساليب التالية:
قم بتوفير قيمة المتغير كجزء من
bundleأمر مثلvalidateأوdeployأوrun. للقيام بذلك، استخدم الخيار--var="<key>=<value>"، حيث<key>هو اسم المتغير، وهو<value>قيمة المتغير. على سبيل المثال، كجزء منbundle validateالأمر ، لتوفير قيمة1234-567890-abcde123للمتغير المسمىmy_cluster_id، ولتوفر قيمة./hello.pyللمتغير المسمىmy_notebook_path، قم بتشغيل:databricks bundle validate --var="my_cluster_id=1234-567890-abcde123,my_notebook_path=./hello.py" # Or: databricks bundle validate --var="my_cluster_id=1234-567890-abcde123" --var="my_notebook_path=./hello.py"توفير قيمة المتغير عن طريق تعيين متغير بيئة. يجب أن يبدأ اسم متغير البيئة ب
BUNDLE_VAR_. لتعيين متغيرات البيئة، راجع وثائق نظام التشغيل الخاص بك. على سبيل المثال، لتوفير قيمة1234-567890-abcde123للمتغير المسمىmy_cluster_id، ولتوفر قيمة./hello.pyللمتغير المسمىmy_notebook_path، قم بتشغيل الأمر التالي قبل استدعاء أمرbundleمثلvalidateأوdeployأوrun:بالنسبة إلى Linux وmacOS:
export BUNDLE_VAR_my_cluster_id=1234-567890-abcde123 && export BUNDLE_VAR_my_notebook_path=./hello.pyلـ Windows:
"set BUNDLE_VAR_my_cluster_id=1234-567890-abcde123" && "set BUNDLE_VAR_my_notebook_path=./hello.py"أو، قم بتوفير قيمة المتغير كجزء من
bundleأمر مثلvalidateأوdeployأوrun، على سبيل المثال ل Linux وmacOS:BUNDLE_VAR_my_cluster_id=1234-567890-abcde123 BUNDLE_VAR_my_notebook_path=./hello.py databricks bundle validateأو ل Windows:
"set BUNDLE_VAR_my_cluster_id=1234-567890-abcde123" && "set BUNDLE_VAR_my_notebook_path=./hello.py" && "databricks bundle validate"قم بتوفير قيمة المتغير داخل ملفات تكوين الحزمة. للقيام بذلك، استخدم تعيينا
variablesداخلtargetsالتعيين، باتباع هذا التنسيق:variables: <variable-name>: <value>على سبيل المثال، لتوفير قيم للمتغيرات المسماة
my_cluster_idولهدفينmy_notebook_pathمنفصلين:targets: dev: variables: my_cluster_id: 1234-567890-abcde123 my_notebook_path: ./hello.py prod: variables: my_cluster_id: 2345-678901-bcdef234 my_notebook_path: ./hello.py
إشعار
أيا كان الأسلوب الذي تختاره لتوفير قيم متغيرة، استخدم نفس النهج أثناء كل من مراحل التوزيع والتشغيل. وإلا، فقد تحصل على نتائج غير متوقعة بين وقت التوزيع ووظيفة أو تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية التي تستند إلى هذا النشر الحالي.
في الأمثلة السابقة، يبحث Databricks CLI عن قيم المتغيرات my_cluster_id وبالترتيب my_notebook_path التالي، يتوقف عند العثور على قيمة لكل متغير مطابق، متخطاة أي مواقع أخرى لهذا المتغير:
- ضمن أي
--varخيارات محددة كجزء منbundleالأمر. - ضمن أي مجموعة متغيرات البيئة التي تبدأ ب
BUNDLE_VAR_. - ضمن أي
variablesتعيينات، من بينtargetsالتعيينات داخل ملفات تكوين الحزمة. - أي
defaultقيمة لتعريف هذا المتغير، من بين تعيينات المستوىvariablesالأعلى داخل ملفات تكوين المجموعة الخاصة بك.
تعريف متغير معقد
من المفترض أن يكون المتغير المخصص من سلسلة النوع إلا إذا قمت بتعريفه كمتغير معقد. لتعريف متغير مخصص بنوع معقد لحزمتك، قم بتعيين type إلى complex في تكوين المجموعة.
إشعار
القيمة الصالحة الوحيدة للإعداد type هي complex. بالإضافة إلى ذلك، يفشل التحقق من صحة الحزمة إذا type تم تعيين إلى complex وكان default المحدد للمتغير قيمة واحدة.
في المثال التالي، يتم تعريف إعدادات نظام المجموعة داخل متغير معقد مخصص يسمى my_cluster:
variables:
my_cluster:
description: "My cluster definition"
type: complex
default:
spark_version: "13.2.x-scala2.11"
node_type_id: "Standard_DS3_v2"
num_workers: 2
spark_conf:
spark.speculation: true
spark.databricks.delta.retentionDurationCheck.enabled: false
resources:
jobs:
my_job:
job_clusters:
- job_cluster_key: my_cluster_key
new_cluster: ${var.my_cluster}
tasks:
- task_key: hello_task
job_cluster_key: my_cluster_key
استرداد قيمة معرف الكائن
alertclusterinstance_poolpipelinewarehouse dashboardcluster_policymetastorequeryjobservice_principalبالنسبة إلى أنواع الكائنات و، يمكنك تعريف lookup لمتغيرك المخصص لاسترداد معرف كائن مسمى باستخدام هذا التنسيق:
variables:
<variable-name>:
lookup:
<object-type>: "<object-name>"
إذا تم تعريف بحث لمتغير، يتم استخدام معرف الكائن بالاسم المحدد كقيمة للمتغير. يضمن هذا استخدام المعرف الصحيح الذي تم حله للكائن دائما للمتغير.
إشعار
يحدث خطأ إذا لم يكن هناك كائن بالاسم المحدد، أو إذا كان هناك أكثر من كائن واحد بالاسم المحدد.
على سبيل المثال، في التكوين التالي، ${var.my_cluster_id} سيتم استبدال بمعرف نظام المجموعة المشترك 12.2.
variables:
my_cluster_id:
description: An existing cluster
lookup:
cluster: "12.2 shared"
resources:
jobs:
my_job:
name: "My Job"
tasks:
- task_key: TestTask
existing_cluster_id: ${var.my_cluster_id}