Azure Databricks'te Azure DevOps ile kimlik doğrulaması

Bu sayfada , Databricks CLI'sinin kimliğini doğrulamak ve Azure Databricks'e API çağrıları yapmak için Azure DevOps işlem hatlarınızı yapılandırma adımları açıklanmaktadır.

Başlamadan önce

Azure DevOps kimlik doğrulamayı yapılandırmadan önce şu adımları tamamlayın:

  1. Azure'da hizmet sorumlusunu oluşturun ve uygun izinlerle Azure Databricks çalışma alanınıza ekleyin. Bu adım olmadan, işlem hattınız doğru yapılandırılsa bile kimlik doğrulaması başarısız olur.

    Microsoft Entra ID yönetilen hizmet sorumluları için Azure'da bir Microsoft Entra ID uygulaması oluşturun ve bunu çalışma alanınıza ekleyin. Bkz. Hizmet sorumluları ve Hizmet sorumlularını yönetme.

  2. Aracıya Databricks CLI yüklemek için işlem hattınıza bir adım ekleyin:

    - script: |
        curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
      displayName: 'Install Databricks CLI'
    

    Tavsiye

    CLI yüklemesini en son sürüm yerine belirli bir sürüme sabitlemek için main öğesini bir sürüm etiketiyle değiştirin (örneğin, v0.224.0).

Kimlik doğrulama yöntemi seçme

Azure DevOps , hizmet bağlantıları aracılığıyla kimlik doğrulamayı yönetir. Bunlara Azure DevOps portalında Proje ayarları>Hizmet bağlantıları altında erişin.

Azure DevOps Proje ayarları altında Hizmet bağlantılarını seçin

Databricks CLI'sinin kimliğini doğrulamak için azure resource manager hizmet bağlantı türünü şu yöntemlerden biriyle kullanın:

Yöntem Description En iyi kullanım alanı:
İş yükü kimliği federasyonu (önerilen) Belirteçleri almak için OpenID Connect (OIDC) kullanır. Azure DevOps tarafından oluşturulan verenin ve konu tanımlayıcının hizmet sorumlunuzla yapılandırılmasını gerektirir. Güvenli, gizli olmayan kimlik doğrulaması
İstemci sırrı ile hizmet sorumlusu kimliği Kısa süreli OAuth belirteçleri oluşturmak için bir istemci kimliği ve gizli anahtar kullanır. Hizmet ilkesi için bir gizli anahtar oluşturulmasını gerektirir. Görevler arasında paylaşılan kimlik bilgileri gerektiren senaryolar
Yönetilen kimlik İşlem hattını çalıştıran VM'ye veya kapsayıcıya atanan kimliği kullanır. Yalnızca kendi kendine barındırılan koşucular için geçerlidir. Azure belgelerine bakın. Atanmış tanımlayıcılara sahip kendi kendine barındırılan çalıştırıcılar

Uyarı

Mümkün olduğunda iş yükü kimlik federasyonu kullanın. Gizli bilgilere dayanmaz, bu nedenle diğer yöntemlere göre daha güvenlidir. AzureCLI@2 göreviyle elle yapılandırma olmadan otomatik olarak çalışır. Bkz. İş yükü kimlik federasyonu kullanan bir hizmet bağlantısı oluşturma.

Azure CLI kimlik doğrulamayı yapılandırma

Databricks CLI varsayılan olarak kimlik doğrulaması için Azure CLI kullanır. Tüm Databricks CLI komutlarının bir AzureCLI@2 görev içinde çalıştırılması gerekir; bu da her görevin bağımsız olarak kimlik doğrulaması yapması anlamına gelir. Bu işlem biraz gecikmeye neden olur ancak en az yapılandırma gerektirir.

- task: AzureCLI@2
  inputs:
    azureSubscription: <your-service-connection-name>
    useGlobalConfig: true
    scriptType: bash
    scriptLocation: inlineScript
    inlineScript: |
      export DATABRICKS_HOST=https://adb-<workspace-id>.<region>.azuredatabricks.net
      databricks bundle deploy

Şu değerleri güncelleştirin:

  • azureSubscription: Azure Resource Manager hizmet bağlantınızın adı.
  • useGlobalConfig: Gerekli. Komutlar tarafından databricks bundle oluşturulan alt süreçlerin doğrulanmış oturuma erişimini sağlar.
  • DATABRICKS_HOST: Paket yapılandırmanızda veya önceki bir adımda tanımlanmamışsa bunu ayarlayın.

İstemci gizli anahtarı ile kimlik doğrulamayı yapılandırın

Kimlik bilgilerini birden fazla görev arasında paylaşmanız gerektiğinde veya Azure CLI kimlik doğrulaması çok fazla gecikme eklediğinde istemci sırrını kullanın.

Bu yaklaşım, kimlik doğrulama ayrıntılarını bir görevdeki hizmet bağlantısından alır ve ardından sonraki görevler için iş kapsamlı ortam değişkenleri olarak dışarı aktarır.

- task: AzureCLI@2
  inputs:
    azureSubscription: <your-service-connection-name>
    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-<workspace-id>.<region>.azuredatabricks.net
    databricks bundle deploy

Not:

  • addSpnToEnvironment anahtarı, servicePrincipalId, servicePrincipalKey değerlerini satır içi betikte ortaya çıkarır tenantId.
  • Komutlar, ##vso görev kapsamlı değişkenleri Databricks CLI'nin otomatik olarak tanıdığı iş kapsamlı değişkenlere yükseltmektedir.
  • Varsayılan olarak, ARM_CLIENT_SECRET sonraki tüm adımlar için erişilebilir. Erişimi kısıtlamak için değişken tanımına ekleyin issecret=true , ardından bunu ihtiyaç duyan her adıma açıkça geçirin. Sır, bu ayardan bağımsız olarak günlüklerde maskelenir.

Tam bir örnek için bkz. Microsoft Entra hizmet sorumlusuna Git klasörlerine erişme yetkisi verme.

Yönetilen kimlik doğrulamasını yapılandırma

Yönetilen kimlik kimlik doğrulaması, işlem hattı görevleri yerine VM veya kapsayıcı yapılandırmalarına dayanır. Bu yöntem AzureCLI@2 görevini gerektirmez.

- script: |
    export DATABRICKS_AZURE_RESOURCE_ID=/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/workspaces/<workspace-name>
    export ARM_CLIENT_ID=<managed-identity-client-id>
    export ARM_USE_MSI=true
    export DATABRICKS_HOST=https://adb-<workspace-id>.<region>.azuredatabricks.net
    databricks current-user me

Şu değerleri güncelleştirin:

  • DATABRICKS_AZURE_RESOURCE_ID: Bu değeri Azure portalında çalışma alanınızın özellikleri altında bulabilirsiniz.
  • ARM_CLIENT_ID: Yönetilen kimliğin istemci kimliği.
  • DATABRICKS_HOST: İsteğe bağlı. Ayarlanmazsa, değer DATABRICKS_AZURE_RESOURCE_ID'den türetilir.

Yönetilen kimliğin Azure Databricks çalışma alanında Katkıda Bulunan rolüne sahip olması gerekir.

Ayrıca bakınız