Databricks'te Azure DevOps ile kimlik doğrulaması
Azure DevOps işlem hatlarınızı, otomasyonunuzda Databricks CLI komutları ve API çağrıları için kimlik doğrulaması sağlayacak şekilde yapılandırmayı öğrenin.
Azure DevOps kimlik doğrulaması
Azure DevOps'ta kimlik doğrulamasını (birinci taraf ve üçüncü taraf) yönetme işlemi hizmet bağlantılarıyla yapılır. Azure DevOps portalında, Proje ayarları altındaki herhangi bir proje sayfasında hizmet bağlantılarına erişebilirsiniz.
Databricks CLI kimliğini doğrulamak için Azure Resource Manager hizmet bağlantı türünü kullanın. Bu tür için aşağıdaki kimlik doğrulama yöntemlerinden birini seçin:
- Microsoft Entra iş yükü kimliği federasyonu
- Hizmet sorumlusu adına belirteçler almak için OpenID Connect (OIDC) protokolunu kullanır.
- Azure DevOps tarafından oluşturulan sorunları ve konu tanımlayıcısını kullanmayı planladığınız hizmet sorumlusuyla yapılandırmanızı gerektirir.
- Geçerli kimlik doğrulama mekanizması: Azure CLI.
- Microsoft Entra hizmet sorumlusu
- Kısa süreli bir OAuth belirteci oluşturmak için bir istemci kimliği ve MS Entra istemci gizli dizisi kullanır.
- Hizmet bağlantısı için kullanmayı planladığınız hizmet sorumlusu için bir gizli dizi oluşturmanızı gerektirir.
- Geçerli kimlik doğrulama mekanizmaları: Azure CLI, Microsoft Entra istemci gizli dizileri.
- Microsoft Entra Id yönetilen kimliği
- CLI'nın yürütüldiği kaynağa (işlem gibi) atanan kimliği kullanır. Azure DevOps bağlamında, bu yalnızca şirket içinde barındırılan runners kullanıyorsanız geçerlidir. Bkz. Yönetilen kimlik kullanan bir VM'ye Azure Resource Manager hizmet bağlantısı oluşturma.
- Geçerli kimlik doğrulama mekanizmaları: Azure CLI, Microsoft Entra tarafından yönetilen kimlikler (eski adıyla "MSI").
Projenizin gereksinimlerine en uygun kimlik doğrulama mekanizmasını seçtikten sonra Azure DevOps işlem hattı tanımınızda (pipeline.yml
) Azure Databricks CLI ile çalışacak şekilde yapılandırmanız gerekir.
Azure DevOps işlem hattınızı kimlik doğrulaması için Azure CLI'yi kullanacak şekilde yapılandırma
Varsayılan olarak, Azure Databricks CLI, Azure Databricks ile kimlik doğrulama mekanizması olarak Azure CLI'yi kullanır.
Kimlik doğrulaması için Azure CLI'nın kullanılması için Azure Databricks CLI'ya yapılan tüm çağrıların içinde AzureCLI@2 task
yapılması gerektiğini unutmayın. Bu, sonraki görevlerde kimliği doğrulanmış bir oturumu paylaşmanın hiçbir yolu olmadığı anlamına gelir. Her görev bağımsız olarak kimlik doğrulaması yapar ve bu da çalıştırılırken gecikme süresi sağlar.
Aşağıdaki Azure Pipelines örnek yapılandırması, Azure Databricks CLI komutunun kimliğini doğrulamak ve çalıştırmak için Azure CLI'yi bundle deploy
kullanır:
- 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 işlem hattınızı Azure Databricks CLI komutlarını çalıştırmak için Azure CLI kullanacak şekilde yapılandırırken aşağıdakileri yapın:
- Kullanmak istediğiniz hizmet bağlantısını yapılandırmak için kullanın
azureSubscription
. - Komutlar alt işlemler için ortam değişkeni filtreleme kullandığından
databricks bundle
varsayılanıAZURE_CONFIG_FILE
kullanacak şekilde yapılandırınuseGlobalConfig
. Bu ayar yapılmazsa, bu alt işlemler kimliği doğrulanmış oturumun ayrıntılarını bulamaz. - Henüz dışarı aktarılmadıysa (önceki bir adımda veya paket yapılandırmasında olduğu gibi) ortam değişkenini dışarı aktarın
DATABRICKS_HOST
.
Azure DevOps işlem hattınızı kimlik doğrulaması için Microsoft Entra istemci gizli dizisini kullanacak şekilde yapılandırma
Azure CLI'yı çok fazla gecikme süresi eklediği için kimlik doğrulaması için kullanmak istemiyorsanız veya Azure CLI'yi farklı bir görev türünde kullanmanız gerektiğinden Microsoft Entra istemci gizli dizisini kullanın. Kimlik doğrulama ayrıntıları hizmet bağlantısından alınmalıdır, bu nedenle görevi işlem hattınızın bildiriminde kullanmanız AzureCLI@2
gerekir.
AzureCLI@2
Hizmet bağlantınızdan istemci kimliğini ve istemci gizli dizisini almak ve sonra bunları ortam değişkenleri olarak dışarı aktarmak için görevi kullanın. Sonraki görevler bunları doğrudan kullanabilir. Örnek için bkz . Databricks Git klasörlerini yönetmek için Microsoft Entra hizmet sorumlusu kullanma.
Aşağıdaki Azure Pipelines örnek yapılandırması, Azure Databricks CLI bundle deploy
komutunun kimliğini doğrulamak ve çalıştırmak için bir Microsoft Entra istemci gizli dizisi kullanır:
- 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 işlem hattınızı Azure Databricks CLI komutlarını çalıştırmak için Microsoft Entra istemci gizli dizilerini kullanacak şekilde yapılandırırken aşağıdakileri yapın:
- İlgili ortam değişkenlerini satır içi betikte dışarı aktaracak şekilde yapılandırın
addSpnToEnvironment
. - Satır içi betik, görev kapsamlı ortam değişkenlerini Azure Databricks CLI'nın otomatik olarak seçtiği adlar altında iş kapsamlı ortam değişkenleri olarak dışarı aktarır.
- Henüz dışarı aktarılmadıysa (önceki bir adımda veya paket yapılandırmasında olduğu gibi) ortam değişkenini dışarı aktarın
DATABRICKS_HOST
. - Ortam değişkenini
ARM_CLIENT_SECRET
ileissecret=true
işaretlerseniz, bunu gerektiren sonraki her adıma açıkça eklemeniz gerekir.- Bunu yapmazsanız ortam değişkenine
ARM_CLIENT_SECRET
sonraki her adımda erişilebilir. - Ortam
ARM_CLIENT_SECRET
değişkeni, ayardan bağımsız olarak çıkışta maskelenmiştir.
- Bunu yapmazsanız ortam değişkenine
Azure DevOps işlem hattınızı kimlik doğrulaması için Microsoft Entra yönetilen kimliği kullanacak şekilde yapılandırma
Azure yönetilen kimlik kimlik doğrulaması, Azure Databricks CLI'nın doğru kimlik altında yürütüleceğini garanti etmek için sanal makineye veya kapsayıcı yapılandırmasına bağlı olduğundan, Azure DevOps işlem hattı yapılandırmanız görevi belirtmenizi AzureCLI@2
gerektirmez.
Aşağıdaki Azure Pipelines örnek yapılandırması, Azure Databricks CLI bundle deploy
komutunun kimliğini doğrulamak ve çalıştırmak için Microsoft Entra yönetilen kimliğini kullanır:
- 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 işlem hattınızı Azure Databricks CLI komutlarını çalıştırmak için Microsoft Entra yönetilen kimliklerini kullanacak şekilde yapılandırırken aşağıdakileri yapın:
- Microsoft Entra yönetilen kimliğine erişeceği Databricks çalışma alanında "Katkıda Bulunan" rolü atanmalıdır.
- Ortam değişkeninin
DATABRICKS_AZURE_RESOURCE_ID
değeri, Azure portalındaki Azure Databricks örneğinin Özellikleri altında bulunur. - Ortam değişkeninin
ARM_CLIENT_ID
değeri, yönetilen kimliğin istemci kimliğidir.
Not
DATABRICKS_HOST
Ortam değişkeni bu yapılandırmada belirtilmezse, değeri kaynağından DATABRICKS_AZURE_RESOURCE_ID
çıkarılır.
Azure Pipelines işlem hattından Azure Databricks CLI'yi yükleme
Tercih ettiğiniz kimlik doğrulama mekanizmalarını yapılandırdıktan sonra, Azure Databricks CLI komutlarını çalıştıracak konak veya aracıya Azure Databricks CLI'yı yüklemeniz gerekir.
# Install Databricks CLI
- script: |
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
displayName: 'Install Databricks CLI'
İpucu
- Azure Databricks CLI'nın en son sürümünü otomatik olarak yüklemek istemiyorsanız, yükleyici URL'sindeki değerini
main
belirli bir sürümle değiştirin (örneğin,v0.224.0
).
En iyi yöntemler
Databricks, tercih edilen kimlik doğrulama yöntemi olarak Microsoft Entra iş yükü kimlik federasyonu kullanmanızı önerir. Gizli dizilere dayanmaz ve diğer kimlik doğrulama yöntemlerinden daha güvenlidir. Elle yapılandırma olmadan görevle
AzureCLI@2
otomatik olarak çalışır.Daha fazla ayrıntı için bkz . İş yükü kimlik federasyonu kullanan bir Azure Resource Manager hizmet bağlantısı oluşturma.