Megosztás:


Hitelesítés az Azure DevOpsszal az Azure Databricksben

Ez a lap bemutatja, hogyan konfigurálhatja az Azure DevOps-folyamatokat a Databricks CLI hitelesítéséhez és az Azure Databricks api-hívások indításához.

Mielőtt hozzákezdene

Az Azure DevOps-hitelesítés konfigurálása előtt hajtsa végre az alábbi lépéseket:

  1. Hozza létre a szolgáltatásnevet az Azure-ban, és adja hozzá az Azure Databricks-munkaterülethez megfelelő engedélyekkel. E lépés nélkül a hitelesítés akkor is meghiúsul, ha a folyamat megfelelően van konfigurálva.

    A Microsoft Entra ID által felügyelt szolgáltatásnevekhez hozzon létre egy Microsoft Entra ID-alkalmazást az Azure-ban, majd adja hozzá a munkaterülethez. Lásd: Szolgáltatásnevek és szolgáltatásnevek kezelése.

  2. Adjon hozzá egy lépést a folyamathoz a Databricks parancssori felület ügynökre való telepítéséhez:

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

    Jótanács

    Ha a cli-telepítést a legújabb helyett egy adott verzióra szeretné rögzíteni, cserélje le main egy verziócímkére (például v0.224.0).

Hitelesítési módszer kiválasztása

Az Azure DevOps szolgáltatáskapcsolatokkal kezeli a hitelesítést. Az Azure DevOps portálon érheti el őket a Project Settings>Service-kapcsolatok alatt.

Szolgáltatáskapcsolatok kiválasztása az Azure DevOps Project beállításai alatt

A Databricks parancssori felület hitelesítéséhez használja az Azure Resource Manager szolgáltatás kapcsolattípusát az alábbi módszerek egyikével:

Metódus Description A következőkre alkalmas
Számítási feladatok identitásának összevonása (ajánlott) Az OpenID Connect (OIDC) használatával szerez be jogkivonatokat. Az Azure DevOps által létrehozott kiállító és tulajdonosazonosító konfigurálását igényli a szolgáltatásnévvel. Biztonságos, titkos kulcs nélküli hitelesítés
Szolgáltatásfelelős ügyféltitokkal Egy ügyfélazonosítót és titkos kulcsot használ a rövid élettartamú OAuth-jogkivonatok létrehozásához. Az ügyfélhivatkozási azonosító titkos kulcsának létrehozása szükséges. Megosztott hitelesítő adatokat igénylő forgatókönyvek a tevékenységek között
Kezelt identitás A folyamatot futtató virtuális géphez vagy tárolóhoz rendelt identitást használja. Csak saját üzemeltetésű runnerek esetén alkalmazható. Tekintse meg az Azure dokumentációját. Saját üzemeltetésű futók hozzárendelt identitásokkal

Megjegyzés:

Ha lehetséges, használja a számítási feladatok identitásának összevonását. Nem támaszkodik titkos kódokra, így biztonságosabb, mint más módszerek. Manuális konfigurálás nélkül automatikusan működik a AzureCLI@2 feladattal. Lásd: Számítási feladatok identitás-összevonását használó szolgáltatáskapcsolat létrehozása.

Azure CLI-hitelesítés konfigurálása

A Databricks CLI alapértelmezés szerint az Azure CLI-t használja a hitelesítéshez. Minden Databricks CLI-parancsnak egy AzureCLI@2 tevékenységen belül kell futnia, ami azt jelenti, hogy minden tevékenység egymástól függetlenül hitelesít. Ez némi késést eredményez, de minimális konfigurációt igényel.

- 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

Frissítse az alábbi értékeket:

  • azureSubscription: Az Azure Resource Manager-szolgáltatáskapcsolat neve.
  • useGlobalConfig:Szükséges. Biztosítja, hogy a parancsok által databricks bundle létrehozott alfolyamatok hozzáférhessenek a hitelesített munkamenethez.
  • DATABRICKS_HOST: Ezt akkor állítsa be, ha még nincs definiálva a csomagkonfigurációban vagy egy előző lépésben.

Ügyfél titkos hitelesítésének konfigurálása

Használjon ügyfélkulcsot, ha hitelesítő adatokat kell megosztania több feladat között, vagy ha az Azure CLI-hitelesítés túl sok késést ad hozzá.

Ez a módszer egyetlen tevékenységben kéri le a hitelesítési adatokat a szolgáltatáskapcsolatból, majd exportálja őket feladathatókörű környezeti változókként a későbbi tevékenységekhez.

- 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

Megjegyzés:

  • A addSpnToEnvironment kulcs hozzáférést biztosít a servicePrincipalId, servicePrincipalKey és tenantId számára a beágyazott szkriptben.
  • A ##vso parancsok a feladat hatókörű változóit a Databricks parancssori felülete által automatikusan felismert feladathatókörű változókra előléptetik.
  • Alapértelmezés szerint ARM_CLIENT_SECRET minden további lépéshez elérhető. A hozzáférés korlátozásához adja hozzá issecret=true a változódefiníciót, majd explicit módon adja át minden szükséges lépésnek. A titkos kód ettől a beállítástól függetlenül a naplókban maszkolva van.

Egy teljes példáért lásd: Microsoft Entra szolgáltatásnév engedélyezése a Git-mappák eléréséhez.

Felügyelt identitás hitelesítésének konfigurálása

A felügyelt identitáshitelesítés a folyamatfeladatok helyett a virtuális gépre vagy a tárolókonfigurációra támaszkodik. Ehhez a metódushoz nincs szükség a feladatra 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

Frissítse az alábbi értékeket:

  • DATABRICKS_AZURE_RESOURCE_ID: Keresse meg ezt az értéket a munkaterület Tulajdonságai területén az Azure Portalon.
  • ARM_CLIENT_ID: A felügyelt identitás ügyfélazonosítója.
  • DATABRICKS_HOST: Nem kötelező. Ha nincs beállítva, az értéket a(z) DATABRICKS_AZURE_RESOURCE_ID alapján következtetjük le.

A felügyelt identitásnak közreműködői szerepkört kell tartalmaznia az Azure Databricks-munkaterületen.

Lásd még