共用方式為


使用 Terraform 管理 Azure Databricks Git 資料夾

您可以使用 Terraformdatabricks_repo Terraform 資源,在完全自動化的環境中管理 Azure Databricks Git 資料夾。

本主題涵蓋兩種驗證方法:

  • 個人存取權杖 (PAT) 驗證: 使用 Git 個人存取權杖進行存放庫存取
  • 具有同盟認證的服務主體: 使用 Azure 服務主體搭配 OpenID Connect (OIDC) 權杖,對 Azure DevOps 存放庫進行安全、無權杖的驗證

使用個人存取權杖進行驗證

此方法會使用 Git 個人存取權杖進行存放庫驗證。

在 Terraform 配置(.tf)檔案中,將 databricks_repo 設定為您將用於 Git 資料夾的 Git 儲存庫 URL:

resource "databricks_repo" "this" {
  url = "https://github.com/user/demo.git"
}

若要搭配個人存取權杖型 Git 認證使用 Azure Databricks 服務主體,請遵循下列步驟:

步驟 1:配置 Azure Databricks 提供者

將提供者 databricks 設定為 Azure Databricks 工作區的 URL。 您將在稍後的步驟中定義存取權杖 databricks_obo_token

provider "databricks" {
  # Configuration options
}

# Example 'databricks' provider configuration
provider "databricks" {
  alias = "sp"
  host = "https://....cloud.databricks.com"
  token = databricks_obo_token.this.token_value
}

步驟 2:建立服務主體

定義 Azure Databricks 服務主體的資源。 您可以在 Azure Databricks 帳戶控制台中的使用者管理>服務主體下找到服務主體名稱。

resource "databricks_service_principal" "sp" {
  display_name = "<service_principal_name_here>"
}

步驟 3:建立授權權杖

使用應用程式 ID 設置 Azure Databricks 服務主體帳戶的授權權杖。 您可以在 Azure Databricks 帳戶控制台的使用者管理中,於>下找到服務主體的應用程式識別碼。

resource "databricks_obo_token" "this" {
  application_id   = databricks_service_principal.sp.application_id
  comment          = "PAT on behalf of ${databricks_service_principal.sp.display_name}"
  lifetime_seconds = 3600
}

步驟 4:設定 Git 認證

設定服務主體使用的 Git 認證,以存取您的 Git 存放庫。

resource "databricks_git_credential" "sp" {
  provider = databricks.sp
  depends_on = [databricks_obo_token.this]
  git_username          = "<the_git_user_account_used_by_the_servcie_principal>"
  git_provider          = "<your_git_provider_string here>"
  personal_access_token = "<auth_token_string_for_git_user>"
}

使用服務主體和聯合憑證進行身份驗證

針對 Azure DevOps 存放庫,您可以使用同盟身分識別認證來驗證,而不需要儲存長期秘密。 此方法會使用 Azure Databricks 服務主體,搭配 Azure DevOps 管線所發出的 OIDC 權杖,這就不需要個人存取權杖。

先決條件

在設定 Azure Databricks Git 資料夾的同盟身分識別驗證之前,請先設定下列元件:

步驟 1:設定變數

指定檔案中 terraform.tfvars 下列變數的值:

  • databricks_host:Azure Databricks 工作區的 URL,例如 https://adb-123417477717.17.azuredatabricks.net
  • entra_client_id:Azure 服務主體的用戶端識別碼
  • entra_client_secret:Azure 服務主體的用戶端密碼
  • entra_tenant_id:服務主體註冊所在的 Microsoft Entra ID
  • ado_repo_url:Azure DevOps 中 Git 存放庫的 HTTPS URL

步驟 2:設定 Azure Databricks 提供者

在您的 Terraform 組態中,請使用官方 databricks 提供者。 提供者的身份驗證可以使用您組織的標準方法,例如在持續整合(CI)中使用環境變數,或在從安全工作站執行 Terraform 時使用服務主體。

terraform {
  required_providers {
    databricks = {
      source  = "databricks/databricks"
      version = "1.78.0"
    }
  }
}

provider "databricks" {
  host                = var.databricks_host
  azure_client_id     = var.entra_client_id
  azure_client_secret = var.entra_client_secret
  azure_tenant_id     = var.entra_tenant_id
}

步驟 3:建立 Azure DevOps 的同盟 Git 認證

此憑證會告知 Azure Databricks 使用 Azure Active Directory 支援的同盟驗證來處理 Azure DevOps。

resource "databricks_git_credential" "sp_ado" {
  git_provider            = "azureDevOpsServicesAad"
  is_default_for_provider = true
}

步驟 4:將 Git 資料夾指向 Azure DevOps 存放庫

建立或更新 Git 資料夾,以使用您的 Azure DevOps 存放庫 URL。

resource "databricks_repo" "this" {
  url        = var.ado_repo_url
  depends_on = [databricks_git_credential.sp_ado]
}