page_title |
---|
Provisioning Azure Databricks Workspace |
The following sample configuration assumes you have been authorized with az login
on your local machine and have Contributor
rights to your subscription.
terraform {
required_providers {
azurerm = "~> 2.33"
random = "~> 2.2"
}
}
provider "azurerm" {
features {}
}
variable "region" {
type = string
default = "westeurope"
}
resource "random_string" "naming" {
special = false
upper = false
length = 6
}
data "azurerm_client_config" "current" {
}
data "external" "me" {
program = ["az", "account", "show", "--query", "user"]
}
locals {
prefix = "databricksdemo${random_string.naming.result}"
tags = {
Environment = "Demo"
Owner = lookup(data.external.me.result, "name")
}
}
resource "azurerm_resource_group" "this" {
name = "${local.prefix}-rg"
location = var.region
tags = local.tags
}
resource "azurerm_databricks_workspace" "this" {
name = "${local.prefix}-workspace"
resource_group_name = azurerm_resource_group.this.name
location = azurerm_resource_group.this.location
sku = "premium"
managed_resource_group_name = "${local.prefix}-workspace-rg"
tags = local.tags
}
output "databricks_host" {
value = "https://${azurerm_databricks_workspace.this.workspace_url}/"
}
In Terraform 0.13 and later, data resources have the same dependency resolution behavior as defined for managed resources. Most data resources make an API call to a workspace. If a workspace doesn't exist yet, default auth: cannot configure default credentials
error is raised. To work around this issue and guarantee a proper lazy authentication with data resources, add depends_on = [azurerm_databricks_workspace.this]
to the body. This issue doesn't occur if a workspace is created in one module and resources within the workspace are created in another. We do not recommend using Terraform 0.12 and earlier if your usage involves data resources.
data "databricks_current_user" "me" {
depends_on = [azurerm_databricks_workspace.this]
}
In the next step, please use the special configurations for Azure:
provider "databricks" {
host = azurerm_databricks_workspace.this.workspace_url
}