Terraform - проблема с форматированием тегов для Azure - PullRequest
0 голосов
/ 11 января 2019

У меня проблема с тегами, этот шаблон работал на AWS, но для Azure я получил ошибку, которая странная, может кто-то просмотреть и помочь? Спасибо.

$ план terraform

Ошибка: azurerm_virtual_network.vnet: 1 произошла ошибка (и):

  • azurerm_virtual_network.vnet: В столбце 5 строка 2: слияние: аргумент 1 должен быть картой типа, полученный тип строки в:

    $ { объединить (карта («Имя», имя_переменного), 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 голосов
/ 11 января 2019

Я действительно не знаю, чего вы пытаетесь достичь, но merge работает с картами , где, как и в вашем случае, global_tags и vnet_tags - это строки. и ошибка говорит только о том, что

поэтому вы приводите свой первый вход к функции merge в MAP, но не приводите остальные. Вы должны также привести их к MAP.

...