المصادقة باستخدام Azure DevOps على Databricks
تعرف على كيفية تكوين مسارات Azure DevOps لتوفير المصادقة لأوامر Databricks CLI واستدعاءات واجهة برمجة التطبيقات في التنفيذ التلقائي.
مصادقة Azure DevOps
تتم إدارة المصادقة (الطرف الأول والجهات الخارجية) في Azure DevOps مع اتصالات الخدمة. في مدخل Azure DevOps، يمكنك الوصول إلى اتصالات الخدمة على أي صفحة مشروع ضمن إعدادات المشروع.
لمصادقة Databricks CLI، استخدم نوع اتصال خدمة Azure Resource Manager . لهذا النوع، اختر إحدى طرق المصادقة التالية:
- اتحاد هوية حمل عمل Microsoft Entra
- يستخدم بروتوكول OpenID Connect (OIDC) للحصول على الرموز المميزة نيابة عن كيان الخدمة.
- يتطلب منك تكوين المشكلات التي تم إنشاؤها بواسطة Azure DevOps ومعرف الموضوع مع كيان الخدمة الذي تنوي استخدامه.
- آلية المصادقة القابلة للتطبيق: Azure CLI.
- كيان خدمة Microsoft Entra
- يستخدم معرف عميل وسر عميل MS Entra لإنشاء رمز OAuth مميز قصير الأجل.
- يتطلب منك إنشاء سر لكيان الخدمة الذي تنوي استخدامه لاتصال الخدمة.
- آليات المصادقة القابلة للتطبيق: أسرار عميل Azure CLI وMicrosoft Entra.
- الهوية المدارة لمعرف Microsoft Entra
- يستخدم الهوية المعينة للمورد (مثل الحساب) الذي يتم تنفيذ CLI عليه. في سياق Azure DevOps، لا يكون هذا مناسبا إلا إذا كنت تستخدم مشغلات مستضافة ذاتيا. راجع إنشاء اتصال خدمة Azure Resource Manager إلى جهاز ظاهري يستخدم هوية مدارة.
- آليات المصادقة القابلة للتطبيق: Azure CLI، الهويات المدارة من Microsoft Entra (المعروفة سابقا باسم "MSI").
بعد اختيار آلية المصادقة التي تتوافق بشكل أفضل مع احتياجات مشروعك، يجب عليك تكوينها في تعريف البنية الأساسية لبرنامج ربط العمليات التجارية Azure DevOps (pipeline.yml
) للعمل مع Azure Databricks CLI.
تكوين البنية الأساسية لبرنامج ربط العمليات التجارية Azure DevOps لاستخدام Azure CLI للمصادقة
بشكل افتراضي، سيستخدم Azure Databricks CLI Azure CLI كآلية للمصادقة مع Azure Databricks.
لاحظ أن استخدام Azure CLI للمصادقة يتطلب جميع الاستدعاءات إلى Azure Databricks CLI يجب إجراؤها AzureCLI@2 task
في ، ما يعني أنه لا توجد طريقة لمشاركة جلسة مصادق عليها في المهام اللاحقة. تتم مصادقة كل مهمة بشكل مستقل، ما يقدم زمن انتقال أثناء تشغيلها.
يستخدم مثال تكوين Azure Pipelines التالي Azure CLI لمصادقة وتشغيل أمر Azure Databricks CLI bundle deploy
:
- task: AzureCLI@2
inputs:
azureSubscription: {your-azure-subscription-id-here}
useGlobalConfig: true
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
export DATABRICKS_HOST=https://adb...
databricks bundle deploy
عند تكوين مسار Azure DevOps لاستخدام Azure CLI لتشغيل أوامر Azure Databricks CLI، قم بما يلي:
- استخدم
azureSubscription
لتكوين اتصال الخدمة الذي تريد استخدامه. - تكوين
useGlobalConfig
لاستخدام الافتراضيAZURE_CONFIG_FILE
لأنdatabricks bundle
الأوامر تستخدم تصفية متغير البيئة للمعالجة الفرعية. إذا لم يتم تعيين هذا، فلن تتمكن هذه العمليات الفرعية من العثور على تفاصيل الجلسة المصادق عليها. - إذا لم يتم تصديره بالفعل (كما في خطوة سابقة أو في تكوين المجموعة)، فصدر
DATABRICKS_HOST
متغير البيئة.
تكوين البنية الأساسية لبرنامج ربط العمليات التجارية Azure DevOps لاستخدام سر عميل Microsoft Entra للمصادقة
إذا كنت لا تريد استخدام Azure CLI للمصادقة لأنه يضيف زمن انتقال كبير جدا، أو لأنك تحتاج إلى استخدام Azure CLI في نوع مهمة مختلف، فاستخدم سر عميل Microsoft Entra. يجب استرداد تفاصيل المصادقة من اتصال الخدمة، لذلك يجب عليك استخدام AzureCLI@2
المهمة في الإعلان عن البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك.
AzureCLI@2
استخدم المهمة لاسترداد معرف العميل وسر العميل من اتصال الخدمة، ثم قم بتصديرهما كمتغيرات بيئة. يمكن للمهام اللاحقة استخدامها مباشرة. على سبيل المثال، راجع استخدام كيان خدمة Microsoft Entra لإدارة مجلدات Databricks Git.
يستخدم مثال تكوين Azure Pipelines التالي سر عميل Microsoft Entra لمصادقة وتشغيل أمر Azure Databricks CLI bundle deploy
:
- task: AzureCLI@2
inputs:
azureSubscription: {your-azure-subscription-id-here}
addSpnToEnvironment: true
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
echo "##vso[task.setvariable variable=ARM_CLIENT_ID]${servicePrincipalId}"
echo "##vso[task.setvariable variable=ARM_CLIENT_SECRET]${servicePrincipalKey}"
echo "##vso[task.setvariable variable=ARM_TENANT_ID]${tenantId}"
- script: |
export DATABRICKS_HOST=https://adb...
databricks bundle deploy
عند تكوين مسار Azure DevOps لاستخدام أسرار عميل Microsoft Entra لتشغيل أوامر Azure Databricks CLI، قم بما يلي:
- تكوين
addSpnToEnvironment
لتصدير متغيرات البيئة ذات الصلة إلى البرنامج النصي المضمن. - يقوم البرنامج النصي المضمن بتصدير متغيرات البيئة ذات نطاق المهمة كمتغيرات بيئة ذات نطاق وظيفة تحت الأسماء التي يلتقطها Azure Databricks CLI تلقائيا.
- إذا لم يتم تصديره بالفعل (كما في خطوة سابقة أو في تكوين المجموعة)، فصدر
DATABRICKS_HOST
متغير البيئة. - إذا قمت بوضع علامة على
ARM_CLIENT_SECRET
متغير البيئة باستخدامissecret=true
، يجب إضافته بشكل صريح إلى كل خطوة لاحقة تحتاج إليه.- إذا لم تقم بذلك،
ARM_CLIENT_SECRET
فسيكون متغير البيئة متاحا لكل خطوة لاحقة. ARM_CLIENT_SECRET
يتم إخفاء متغير البيئة في الإخراج بغض النظر عن الإعداد.
- إذا لم تقم بذلك،
تكوين البنية الأساسية لبرنامج ربط العمليات التجارية Azure DevOps لاستخدام هوية مدارة من Microsoft Entra للمصادقة
نظرا لأن مصادقة الهوية المدارة من Azure تعتمد على الجهاز الظاهري أو تكوين الحاوية لضمان تنفيذ Azure Databricks CLI تحت الهوية الصحيحة، لا يتطلب تكوين البنية الأساسية لبرنامج ربط العمليات التجارية Azure DevOps تحديد AzureCLI@2
المهمة.
يستخدم مثال تكوين Azure Pipelines التالي هوية مدارة من Microsoft Entra لمصادقة وتشغيل أمر Azure Databricks CLI bundle deploy
:
- script: |
export DATABRICKS_AZURE_RESOURCE_ID=/subscriptions/<id>/resourceGroups/<name>/providers/Microsoft.Databricks/workspaces/<name>
export ARM_CLIENT_ID=eda1f2c4-07cb-4c2c-a126-60b9bafee6d0
export ARM_USE_MSI=true
export DATABRICKS_HOST=https://adb...
databricks current-user me --log-level trace
عند تكوين البنية الأساسية لبرنامج ربط العمليات التجارية Azure DevOps لاستخدام الهويات المدارة من Microsoft Entra لتشغيل أوامر Azure Databricks CLI، قم بما يلي:
- يجب تعيين هوية Microsoft Entra المدارة لدور "المساهم" في مساحة عمل Databricks التي سيتم الوصول إليها.
- تم العثور على
DATABRICKS_AZURE_RESOURCE_ID
قيمة متغير البيئة ضمن Properties لمثيل Azure Databricks في مدخل Microsoft Azure. - قيمة
ARM_CLIENT_ID
متغير البيئة هي معرف العميل للهوية المدارة.
إشعار
DATABRICKS_HOST
إذا لم يتم تحديد متغير البيئة في هذا التكوين، استنتاج القيمة من DATABRICKS_AZURE_RESOURCE_ID
.
تثبيت Azure Databricks CLI من البنية الأساسية لبرنامج ربط العمليات التجارية Azure Pipelines
بعد تكوين آليات المصادقة المفضلة لديك، يجب تثبيت Azure Databricks CLI على المضيف أو العامل الذي سيقوم بتشغيل أوامر Azure Databricks CLI.
# Install Databricks CLI
- script: |
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
displayName: 'Install Databricks CLI'
تلميح
- إذا كنت لا تريد تثبيت أحدث إصدار من Azure Databricks CLI تلقائيا، فاستبدل
main
في عنوان URL المثبت بإصدار معين (على سبيل المثال،v0.224.0
).
أفضل الممارسات
توصي Databricks باستخدام اتحاد هوية حمل العمل Microsoft Entra كطريقة المصادقة المفضلة. لا يعتمد على الأسرار وهو أكثر أمانا من أساليب المصادقة الأخرى. يعمل تلقائيا مع
AzureCLI@2
المهمة دون أي تكوين يدوي.لمزيد من التفاصيل، راجع إنشاء اتصال خدمة Azure Resource Manager الذي يستخدم اتحاد هوية حمل العمل.