Terraform 在与DataRicks提供程序相同的配置中使用DataRicks workspace

Terraform 在与DataRicks提供程序相同的配置中使用DataRicks workspace,terraform,databricks,azure-databricks,terraform-provider-azure,terraform-provider-databricks,Terraform,Databricks,Azure Databricks,Terraform Provider Azure,Terraform Provider Databricks,我在让azurerm和databricks提供商一起工作时遇到了一些问题 使用azurerm提供程序,设置我的工作区 resource "azurerm_databricks_workspace" "ws" { name = var.workspace_name resource_group_name = azurerm_resource_group.rg.name location

我在让azurerm和databricks提供商一起工作时遇到了一些问题

使用azurerm提供程序,设置我的工作区

resource "azurerm_databricks_workspace" "ws" {
  name                        = var.workspace_name
  resource_group_name         = azurerm_resource_group.rg.name
  location                    = azurerm_resource_group.rg.location
  sku                         = "premium"
  managed_resource_group_name = "${azurerm_resource_group.rg.name}-mng-rg"
  custom_parameters {
    virtual_network_id  = data.azurerm_virtual_network.vnet.id
    public_subnet_name  = var.public_subnet
    private_subnet_name = var.private_subnet
  }
}
无论我如何构造它,我不能说似乎让
azurerm\u databricks\u workspace.ws.id
在同一配置中的databricks的provider语句中工作。如果它确实起作用,则上述工作区将在相同的配置中定义,并且我将有一个如下所示的provider语句:

provider "databricks" {
  azure_workspace_resource_id = azurerm_databricks_workspace.ws.id
}
错误:

我将ARM_*环境变量设置为在订阅上标识为具有参与者的服务主体

我尝试过相同的配置&在模块中使用输出。我能让它工作的唯一方法是为工作区运行一个配置,然后运行第二个配置来使用工作区

这是超次优的,因为我在这些配置中有大量的重复值,最好只有一个

有人能做到这一点吗?
谢谢:)

从错误消息中,似乎未为提供商配置身份验证是否可以通过上面提到的以下选项之一进行配置

有关更多详细信息,请参阅

要传递
自定义_参数
,您可以签出解决类似问题的线程


如果您需要有关此问题的更多帮助,我建议在此处打开一个问题:

从错误消息中,似乎未为提供程序配置身份验证。您可以通过上面提到的以下选项之一进行配置吗

有关更多详细信息,请参阅

要传递
自定义_参数
,您可以签出解决类似问题的线程


如果您在这个问题上需要更多帮助,我建议在这里打开一个问题:

我与一个不工作的databricks提供者有完全相同的问题,因为我正在使用模块。我将DataRicks infra(Azure)与DataRicks应用程序(DataRicks provider)分开

在我的databricks模块中,我在顶部添加了以下代码,否则它将使用我的azure设置:

terraform {
  required_providers {
    databricks = {
      source = "databrickslabs/databricks"
      version = "0.3.1"
    }
  }
}
在我的普通提供程序设置中,我对数据块有以下设置:

provider "databricks" {
  azure_workspace_resource_id = module.databricks_infra.databricks_workspace_id
  azure_client_id             = var.ARM_CLIENT_ID
  azure_client_secret         = var.ARM_CLIENT_SECRET
  azure_tenant_id             = var.ARM_TENANT_ID
}

当然我有蓝色的。让我知道它是否有效:)

我与一个不工作的databricks提供程序有完全相同的问题,因为我使用的是模块。我将DataRicks infra(Azure)与DataRicks应用程序(DataRicks provider)分开

在我的databricks模块中,我在顶部添加了以下代码,否则它将使用我的azure设置:

terraform {
  required_providers {
    databricks = {
      source = "databrickslabs/databricks"
      version = "0.3.1"
    }
  }
}
在我的普通提供程序设置中,我对数据块有以下设置:

provider "databricks" {
  azure_workspace_resource_id = module.databricks_infra.databricks_workspace_id
  azure_client_id             = var.ARM_CLIENT_ID
  azure_client_secret         = var.ARM_CLIENT_SECRET
  azure_tenant_id             = var.ARM_TENANT_ID
}

当然我有蓝色的。让我知道它是否有效:)

如果您在本例中遇到推出资源的技术困难,请确保不提供块属性。如有疑问,请运行
TF_LOG=DEBUG terraform apply
以通过环境变量启用。特别查找应指示所使用的身份验证属性的
显式和隐式属性
行。技术困难的另一个常见原因可能与
provider“databricks”{}
块中缺少
alias
属性或
resource“databricks”{}
块中缺少
provider
属性有关。请务必阅读文档文章。

如果在本例中推出资源时遇到技术困难,请确保不使用提供程序块属性。如有疑问,请运行
TF_LOG=DEBUG terraform apply
以通过环境变量启用。特别查找应指示所使用的身份验证属性的
显式和隐式属性
行。技术困难的另一个常见原因可能与
provider“databricks”{}
块中缺少
alias
属性或
resource“databricks”{}
块中缺少
provider
属性有关。请务必阅读文档文章。

您会遇到什么错误?这种方法对我来说很有效,只要想想你的回答,我就会觉得我说的不对。我将开始生成一些错误。可能是PEBKAC;)在存储库中打开问题也更容易。最好监视一下你有什么错误?这种方法对我来说很有效,只要想想你的回答,我就会觉得我说的不对。我将开始生成一些错误。可能是PEBKAC;)在存储库中打开问题也更容易。更好的方法是monitoredok,这也遵循了我使用的方法。我的工作区位于我的一个实验分支的模块中。我的和你的不同之处在于你的databricks提供者设置。我刚刚设置了
azure\u workspace\u resource\u id
,但我甚至不确定我知道你可以用ARM*变量来实现这一点!非常感谢。我会尝试一下,如果它有效,你可以得到答案:)@JoshRobinson它有效吗?如果您需要更多的代码/帮助,请告诉我。好的,这也是我使用的方法。我的工作区位于我的一个实验分支的模块中。我的和你的不同之处在于你的databricks提供者设置。我刚刚设置了
azure\u workspace\u resource\u id
,但我甚至不确定我知道你可以用ARM*变量来实现这一点!非常感谢。我会尝试一下,如果它有效,你可以得到答案:)@JoshRobinson它有效吗?如果您需要更多代码/帮助,请告诉我。我已设置了所有ARM_*环境变量。事实上,我不必像山姆那样去做一些事情。通常设置变量并将主机添加到提供程序配置中就可以做到这一点。这是w