共用方式為


在 Databricks 上使用 Azure DevOps 進行驗證

瞭解如何設定 Azure DevOps 管線,為自動化中的 Databricks CLI 命令和 API 呼叫提供驗證。

Azure DevOps 驗證

在 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 ID 受控識別

選擇最符合您專案需求的驗證機制之後,您必須在 Azure DevOps 管線定義中設定它,pipeline.yml才能使用 Azure Databricks CLI。

設定 Azure DevOps 管線以使用 Azure CLI 進行驗證

根據預設,Azure Databricks CLI 會使用 Azure CLI 作為向 Azure Databricks 進行驗證的機制。

請注意,使用 Azure CLI 進行驗證時,必須在 中 AzureCLI@2 task呼叫 Azure Databricks CLI,這表示在後續工作中無法共用已驗證的會話。 每個工作都會獨立驗證,這會在執行時引入延遲。

下列 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_FILEdatabricks 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_SECRETissecret=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位於 Azure 入口網站 中 Azure Databricks 實例的 [屬性] 底下。
  • 環境變數的值 ARM_CLIENT_ID 是受控識別的用戶端標識碼。

注意

DATABRICKS_HOST如果未在此組態中指定環境變數,則會從 DATABRICKS_AZURE_RESOURCE_ID推斷值。

從 Azure Pipelines 管線安裝 Azure Databricks CLI

設定慣用的驗證機制之後,您必須在將執行 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,請將安裝程式 URL 中的 取代 main 為特定版本(例如 , v0.224.0)。

最佳作法

另請參閱