【问题标题】:Is there a way to configure git for synapse using terraform or arm templates?有没有办法使用 terraform 或 arm 模板为突触配置 git?
【发布时间】:2021-09-13 07:03:13
【问题描述】:

'''

data "azurerm_client_config" "current" {}
resource "azurerm_synapse_workspace" "example" {
  name                                 = "example"
  resource_group_name                  = azurerm_resource_group.example.name
  location                             = azurerm_resource_group.example.location
  storage_data_lake_gen2_filesystem_id = data.azurerm_storage_container.example
  sql_administrator_login              = "sqladminuser"
  sql_administrator_login_password     = "admin@123"

  azure_devops_repo {
      account_name = "organizationaz440"
      branch_name = "Development"
      project_name = "TestProject"
      repository_name = "DataOps"
      root_folder = "/SynapseNew"
      tenant_id = data.azurerm_client_config.current.tenant_id
  }
  depends_on = [resource.azurerm_synapse_workspace.example]
}

'''

https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/synapse_workspace

错误:此处不应出现“azure_devops_repo”类型的块。

【问题讨论】:

  • 您使用的是哪个版本的 terraform?
  • 嗨 Fedor,我使用的是 Terraform v1.0.6

标签: terraform-provider-azure


【解决方案1】:

有几件事需要解决:

  1. 你给storage_data_lake_gen2_filesystem_id = data.azurerm_storage_container.example而不是你必须给 storage_data_lake_gen2_filesystem_id = azurerm_storage_data_lake_gen2_filesystem.example.id。你必须 使用现有存储创建 datalake gen 2 文件系统 不支持将帐户作为 azurerm_storage_data_lake_gen2_filesystem 的数据源。
  2. 您可以删除此tenant_id = data.azurerm_client_config.current.tenant_id 作为其可选和 保留它会给出一个错误An argument named "tenant_id" is not expected here.
  3. 您可以删除depends_on = [resource.azurerm_synapse_workspace.example],因为它不是必需的。

因此,在进行上述更改后,.tf 文件将如下所示:

    provider "azurerm" {
        features{}
    }
    
    data "azurerm_storage_account" "name" {
      name = "ansumanstorageacc"
      resource_group_name = "yourresourcegroupname"
    }
    resource "azurerm_storage_data_lake_gen2_filesystem" "example" {
      name               = "example"
      storage_account_id = data.azurerm_storage_account.name.id
    }
    resource "azurerm_synapse_workspace" "example" {
      name                                 = "example"
      resource_group_name                  = "yourresourcegroupname"
      location                             = "West US 2"
      storage_data_lake_gen2_filesystem_id = azurerm_storage_data_lake_gen2_filesystem.example.id
      sql_administrator_login              = "sqladminuser"
      sql_administrator_login_password     = "admin@123"
    
      azure_devops_repo {
          account_name = "organizationaz440"
          branch_name = "Development"
          project_name = "TestProject"
          repository_name = "DataOps"
          root_folder = "/SynapseNew"
      }
    }

输出:

terraform apply -auto-approve:

【讨论】:

  • 感谢您的回复。在执行 terraform apply -auto-approve 时,代码返回下面提到的错误。错误:不支持的块类型“azure_devops_repo”类型的块不在这里。
  • @SANDEEPKUMAR,对于我在答案中提供的相同代码,我可以执行 terraform apply -auto-approve。还添加了操作的图像。
  • 感谢您对@AnsumanBal-MT 的持续支持。问题已为我解决。
【解决方案2】:

尝试在 azurerm_synapse_workspace 中设置 azure_devops_repo,如下所示:

azure_devops_repo = [{
      account_name = "organizationaz440"
      branch_name = "Development"
      project_name = "TestProject"
      repository_name = "DataOps"
      root_folder = "/SynapseNew"
      tenant_id = data.azurerm_client_config.current.tenant_id
}]

基本上,作为对象列表。

【讨论】:

  • 我还面临一个错误。错误:不支持的参数│ │ ..\..\Modules\Synapse\main.tf 第 38 行,在资源“azurerm_synapse_workspace”“示例”中:│ 38:azure_devops_repo = [{ │ │ 不需要名为“azure_devops_repo”的参数这里。你的意思是定义一个“azure_devops_repo”类型的块吗?
猜你喜欢
  • 2021-10-31
  • 1970-01-01
  • 2021-12-23
  • 2017-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多