Dela via


Hantera Azure Databricks Git-mappar med Terraform

Du kan hantera Azure Databricks Git-mappar i en helt automatiserad miljö med Terraform och databricks_repo Terraform-resursen.

Det här avsnittet beskriver två autentiseringsmetoder:

  • Autentisering med personlig åtkomsttoken (PAT): Använder personliga Git-åtkomsttoken för lagringsplatsåtkomst
  • Tjänstens huvudnamn med federerade autentiseringsuppgifter: Använder Azure-tjänstens huvudnamn med OpenID Connect-token (OIDC) för säker, tokenfri autentisering till Azure DevOps-lagringsplatser

Autentisering med personliga åtkomsttoken

Den här metoden använder personliga Git-åtkomsttoken för lagringsplatsautentisering.

I Terraform-konfigurationsfilen (.tf) anger databricks_repo du till URL:en för git-lagringsplatsen som du ska använda för dina Git-mappar:

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

För att använda ett tjänsthuvudkonto för Azure Databricks med Git-autentiseringsuppgifter baserade på personliga åtkomsttoken, följ dessa steg:

Steg 1: Konfigurera Azure Databricks-provider

Ange providern databricks till URL:en för din Azure Databricks-arbetsyta. Du definierar åtkomsttoken databricks_obo_token i ett senare steg.

provider "databricks" {
  # Configuration options
}

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

Steg 2: Skapa tjänstens huvudnamn

Definiera resurserna för tjänstens service principal i Azure Databricks. Du hittar tjänstens huvudnamn i Azure Databricks-kontokonsolen underTjänstens huvudnamn för >.

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

Steg 3: Skapa auktoriseringstoken

Ange auktoriseringstoken för ditt Azure Databricks tjänstehuvudnamn med hjälp av program-ID:t. Du hittar tjänstens huvudnamns program-ID i Azure Databricks-kontokonsolen underTjänstens huvudnamn för >.

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
}

Steg 4: Konfigurera Git-autentiseringsuppgifter

Ange de Git-autentiseringsuppgifter som tjänstens huvudnamn ska använda för att komma åt din Git-lagringsplats.

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>"
}

Autentisering med tjänstens huvudnamn och federerade autentiseringsuppgifter

För Azure DevOps-lagringsplatser kan du använda federerade identitetsuppgifter för att autentisera utan att lagra långvariga hemligheter. Den här metoden använder ett tjänstehuvudnamn för Azure Databricks-tjänsten med en OIDC-token som utfärdats av Azure DevOps-pipelines, vilket eliminerar behovet av personliga åtkomsttokener.

Förutsättningar

Innan du kan konfigurera federerad identitetsautentisering för Azure Databricks Git-mappar konfigurerar du följande komponenter:

Steg 1: Konfigurera variabler

Ange värden för följande variabler i en terraform.tfvars fil:

  • databricks_host: URL:en för din Azure Databricks-arbetsyta, till exempel https://adb-123417477717.17.azuredatabricks.net
  • entra_client_id: Klient-ID för Azure-tjänsthuvudnamn
  • entra_client_secret: Klienthemligheten för Azure-tjänstens tjänstehuvudnamn
  • entra_tenant_id: Microsoft Entra-ID:t där tjänstens huvudnamn är registrerat
  • ado_repo_url: HTTPS-URL:en för Git-lagringsplatsen i Azure DevOps

Steg 2: Konfigurera Azure Databricks-leverantören

Använd den officiella databricks providern i Terraform-konfigurationen. Autentisering för providern kan använda din organisations standardmetod, till exempel miljövariabler i continuous integration (CI) eller tjänstens huvudprincip när du kör Terraform från en säker arbetsstation.

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
}

Steg 3: Skapa en federerad Git-autentiseringsuppgift för Azure DevOps

Den här autentiseringsuppgiften instruerar Azure Databricks att använda Azure Active Directory-backad federation för Azure DevOps.

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

Steg 4: Peka en Git-mapp på din Azure DevOps-lagringsplats

Skapa eller uppdatera Git-mappen för att använda url:en för Azure DevOps-lagringsplatsen.

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