我对标签有疑问,此模式可在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"
}
答案 0 :(得分:1)
我真的不知道您要达到什么目的,但是merge
与maps一起使用,其中global_tags
和vnet_tags
是字符串。错误就说明了
因此您将第一个输入转换为merge
函数的MAP,但不要转换其他输入。您也应该将它们投射到MAP。