简体   繁体   English

Terraform 动态块与for_each

[英]Terraform dynamic block with for_each

Need suggestion.需要建议。 I am trying to run the below code.我正在尝试运行以下代码。 First adf is imported which has the vsts configuration.首先导入具有 vsts 配置的 adf。 For second adf, i dont need the vsts configuration.对于第二个 adf,我不需要 vsts 配置。 I have tried using dymanic block, but getting error as below.我曾尝试使用动态块,但出现如下错误。

on main.tf line 16, in resource "azurerm_data_factory" "adf": 2020-12-24T08:13:44.3101544Z 16: dynamic [4m"action"在 main.tf 第 16 行,在资源“azurerm_data_factory”“adf”中:2020-12-24T08:13:44.3101544Z 16:动态 [4m“action”

[0m { 2020-12-24T08:13:44.3101802Z [0m 2020-12-24T08:13:44.3102076Z Blocks of type "action" are not expected here. [0m { 2020-12-24T08:13:44.3101802Z [0m 2020-12-24T08:13:44.3102076Z 此处不应出现“动作”类型的块。

Main.tf主文件

resource "azurerm_data_factory" "adf"{

for_each = var.purposes
name=lower("${var.component}-${var.project}-${var.regionname}-${var.azureregion}-${var.environment}-${each.value.purpose}")

  location            = data.azurerm_resource_group.rg.location
  resource_group_name = data.azurerm_resource_group.rg.name
 

  identity{
    
    type="SystemAssigned"
    
    
  }

  dynamic "action" {
  for_each = var.vsts_config ? [1] : []
  
content {

  vsts_configuration {
    
    account_name = var.accountname
    branch_name = var.branchname
    project_name = var.projectname
    repository_name = var.repository
    tenant_id       = "__tenantId__"
    root_folder     = var.rootfolder

    }
  
}


  }

}

input.tfvars
purposes = {
  a =  {
        purpose = "load",
        
    }
  b =  {
        purpose = "live",
      
    }
}

action is not a valid block in azurerm_data_factory . action不是azurerm_data_factory中的有效块。 If you want to make vsts_configuration block optional, then you code should be:如果你想让vsts_configuration块可选,那么你的代码应该是:

dynamic "vsts_configuration" {

    for_each = var.vsts_config ? [1] : []
  
    content {
        account_name    = var.accountname
        branch_name     = var.branchname
        project_name    = var.projectname
        repository_name = var.repository
        tenant_id       = "__tenantId__"
        root_folder     = var.rootfolder  
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM