Terraform-Azure的标签格式问题

时间:2019-01-11 09:04:55

标签: azure azure-devops terraform terraform-provider-azure

我对标签有疑问,此模式可在AWS上使用,但是对于Azure,我得到了一个奇怪的错误,有人可以查看和帮助吗?谢谢。

$ terraform计划

错误:azurerm_virtual_network.vnet:发生1个错误:

  • azurerm_virtual_network.vnet:在第5列,第2行:合并:参数1应该是类型映射,在其中输入类型字符串:

    $ {     merge(map(“ Name”,var.env_name),     var.global_tags,     var.vnet_tags)}

    main.tf

    resource "azurerm_resource_group" "vnet" {
      name     = "${var.resource_group_name}"
      location = "${var.location}"
    }
    
    resource "azurerm_virtual_network" "vnet" {
      name                = "${var.vnet_name}"
      location            = "${var.location}"
      address_space       = ["${var.address_space}"]
      resource_group_name = "${azurerm_resource_group.vnet.name}"
      dns_servers         = "${var.dns_servers}"
    
    tags = "${
        merge(map("Name", format("%s %s", var.env_name, "Vnet")), 
        var.global_tags, 
        var.vnet_tags)}"
    

    variables.tf

    variable "env_name" {
         default = "Company DTAP"
    }
    
    variable "global_tags" {
      default = "Company Ltd"
    }
    variable "vnet_tags" {
      default = "Production"
    }
    

1 个答案:

答案 0 :(得分:1)

我真的不知道您要达到什么目的,但是mergemaps一起使用,其中global_tagsvnet_tags是字符串。错误就说明了

因此您将第一个输入转换为merge函数的MAP,但不要转换其他输入。您也应该将它们投射到MAP。