Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Halaman ini menjelaskan cara mengonfigurasi alur Azure DevOps Anda untuk mengautentikasi Databricks CLI dan melakukan panggilan API ke Azure Databricks.
Sebelum Anda mulai
Selesaikan langkah-langkah ini sebelum Anda mengonfigurasi autentikasi Azure DevOps:
Buat perwakilan layanan di Azure dan tambahkan ke ruang kerja Azure Databricks Anda dengan izin yang sesuai. Tanpa langkah ini, autentikasi gagal meskipun alur Anda dikonfigurasi dengan benar.
Untuk perwakilan layanan terkelola ID Microsoft Entra, buat aplikasi ID Microsoft Entra di Azure, lalu tambahkan ke ruang kerja Anda. Lihat Perwakilan layanan dan Mengelola perwakilan layanan.
Tambahkan langkah ke alur Anda untuk menginstal Databricks CLI pada agen:
- script: | curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh displayName: 'Install Databricks CLI'Petunjuk / Saran
Untuk menyematkan penginstalan CLI ke versi tertentu alih-alih menggunakan yang terbaru, ganti
maindengan tag versi (misalnya,v0.224.0).
Pilih metode autentikasi
Azure DevOps mengelola autentikasi melalui koneksi layanan. Akses di portal Azure DevOps di bawah Pengaturan proyek>Koneksi layanan.
Untuk mengautentikasi Databricks CLI, gunakan jenis koneksi layanan Azure Resource Manager dengan salah satu metode berikut:
| Metode | Deskripsi | Paling cocok untuk |
|---|---|---|
| Federasi identitas beban kerja (disarankan) | Menggunakan OpenID Connect (OIDC) untuk memperoleh token. Memerlukan konfigurasi penerbit dan pengidentifikasi subjek yang dihasilkan oleh Azure DevOps dengan prinsipal layanan Anda. | Autentikasi aman dan bebas rahasia |
| Perwakilan layanan dengan rahasia klien | Menggunakan ID klien dan rahasia untuk menghasilkan token OAuth berumur pendek. Memerlukan pembuatan rahasia untuk perwakilan layanan. | Skenario yang memerlukan kredensial bersama di seluruh tugas |
| Identitas yang dikelola | Menggunakan identitas yang ditetapkan ke VM atau kontainer yang menjalankan alur. Hanya berlaku untuk pelari yang dihost sendiri. Lihat dokumentasi Azure. | Pelari yang dihost sendiri dengan identitas yang ditetapkan |
Nota
Gunakan federasi identitas beban kerja jika memungkinkan. Ini tidak bergantung pada rahasia, jadi lebih aman daripada metode lain. Ini secara otomatis bekerja dengan tugas AzureCLI@2 tanpa konfigurasi manual. Lihat Membuat koneksi layanan yang menggunakan federasi identitas beban kerja.
Mengonfigurasi autentikasi Azure CLI
Databricks CLI menggunakan Azure CLI untuk autentikasi secara default. Semua perintah Databricks CLI harus berjalan di dalam AzureCLI@2 tugas, yang berarti setiap tugas mengautentikasi secara independen. Ini memperkenalkan beberapa latensi tetapi memerlukan konfigurasi minimal.
- 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
Perbarui nilai-nilai ini:
-
azureSubscription: Nama koneksi layanan Azure Resource Manager Anda. -
useGlobalConfig:Diperlukan. Memastikan subproses yang dihasilkan olehdatabricks bundleperintah dapat mengakses sesi yang diautentikasi. -
DATABRICKS_HOST: Atur ini jika belum ditentukan dalam konfigurasi bundel Anda atau langkah sebelumnya.
Mengonfigurasi autentikasi rahasia klien
Gunakan rahasia klien saat Anda perlu berbagi kredensial di beberapa tugas atau saat autentikasi Azure CLI menambahkan terlalu banyak latensi.
Pendekatan ini mengambil detail autentikasi dari koneksi layanan dalam satu tugas, lalu mengekspornya sebagai variabel lingkungan yang tercakup dalam pekerjaan untuk tugas berikutnya.
- 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
Nota:
- Kunci
addSpnToEnvironmentmengeksposservicePrincipalId,servicePrincipalKey, dantenantIdke skrip sebaris. - Perintah
##vsoini mengubah variabel cakupan tugas menjadi variabel cakupan pekerjaan yang dikenali CLI Databricks secara otomatis. - Secara bawaan,
ARM_CLIENT_SECRETterakses untuk semua langkah selanjutnya. Untuk membatasi akses, tambahkanissecret=trueke definisi variabel, lalu teruskan secara eksplisit ke setiap langkah yang membutuhkannya. Rahasia ditutupi dalam log terlepas dari pengaturan ini.
Untuk contoh lengkapnya, lihat Mengotorisasi perwakilan layanan Microsoft Entra untuk mengakses folder Git.
Mengonfigurasi autentikasi identitas terkelola
Autentikasi identitas terkelola bergantung pada VM atau konfigurasi kontainer daripada tugas alur. Metode ini tidak memerlukan tugas AzureCLI@2.
- 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
Perbarui nilai-nilai ini:
-
DATABRICKS_AZURE_RESOURCE_ID: Temukan nilai ini di bawah Properti untuk ruang kerja Anda di portal Microsoft Azure. -
ARM_CLIENT_ID: ID klien identitas terkelola. -
DATABRICKS_HOST: Opsional. Jika tidak diatur, nilai disimpulkan dariDATABRICKS_AZURE_RESOURCE_ID.
Identitas terkelola harus memiliki peran Kontributor di ruang kerja Azure Databricks.