尝试使用 terraform 但不支持的参数创建 Databricks 工作区:
resource "azurerm_databricks_workspace" "workspace" {
name = "testdata"
resource_group_name = "cloud-terraform"
location = "east us"
sku = "premium"
virtual_network_id = azurerm_virtual_network.vnet.id
public_subnet_name = "databrickpublicsubnet"
public_subnet_cidr = "10.0.0.0/22"
private_subnet_name = "databrickprivatesubnet"
private_subnet_cidr = "10.0.0.0/22"
tags = {
Environment = "terraformtest"
}
}
错误:此处不需要名为“virtual_network_id”的参数。此处不需要名为“public_subnet_name”的参数。此处不需要名为“public_subnet_cidr”的参数。
我没有尝试通过 Terraform 设置 databricks,但我相信(per the docs)你需要在一个块中添加这些属性:
resource "azurerm_databricks_workspace" "workspace" {
name = "testdata"
resource_group_name = "cloud-terraform"
location = "east us"
sku = "premium"
custom_parameters {
virtual_network_id = azurerm_virtual_network.vnet.id
public_subnet_name = "databrickpublicsubnet"
private_subnet_name = "databrickprivatesubnet"
}
tags = {
Environment = "terraformtest"
}
}
这两个 cidr 条目不是 TF 文档的一部分。
您可以添加 terraform 命令来创建子网(假设 vnet 已经存在,您可以使用数据 azurerm_virtual_network 然后创建两个新的子网,然后引用两个新的公共 / 私有子网的名称。
然后你遇到了似乎是鸡 / 蛋的问题。
您得到错误:如果设置了“public_subnet_name”,则必须为“public_subnet_network_security_group_association_id”定义一个值。
问题是,网络安全组通常是在创建 databrick 工作区(如 databricksnsgrandomstring)时自动生成的,它在门户中创建它时可以工作,但是通过 terraform,我必须定义它来创建工作区,但是在我创建工作区之前它还不存在。
下面是我使用的代码(dbname 表示 databricks name!)。这里我也添加到现有的资源组 'qa' 和现有的 vnet 中,只显示公共子网和 nsg 关联,您可以轻松地添加私有的)。只需在自己的 tf 文件中复制 / 修改即可。您肯定需要将 address_prefix 更改为自己的 CIDR 值,这些值在您的 vnet 中工作
resource "azurerm_subnet" "public" {
name = "${var.dbname}-public-subnet"
resource_group_name = data.azurerm_resource_group.qa.name
virtual_network_name = data.azurerm_virtual_network.vnet.name
address_prefixes = ["1.2.3.4/24"]
delegation {
name = "databricks_public"
service_delegation {
name = "Microsoft.Databricks/workspaces"
}
}
}
resource "azurerm_network_security_group" "nsg" {
name = "${var.dbname}-qa-databricks-nsg"
resource_group_name = data.azurerm_resource_group.qa.name
location= data.azurerm_resource_group.qa.location
}
resource "azurerm_subnet_network_security_group_association" "nsga_public" {
network_security_group_id = azurerm_network_security_group.nsg.id
subnet_id = azurerm_subnet.public.id
}
然后在您的 databricks_workspace 块中,将您的自定义参数替换为
custom_parameters {
public_subnet_name = azurerm_subnet.public.name
public_subnet_network_security_group_association_id = azurerm_subnet_network_security_group_association.nsga_public.id
private_subnet_name = azurerm_subnet.private.name
private_subnet_network_security_group_association_id = azurerm_subnet_network_security_group_association.nsga_private.id
virtual_network_id = data.azurerm_virtual_network.vnet.id
}
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(16条)