terraform 的语法检查工具

Syntax check tool for terraform

我收到下面提到的错误,但我不知道引号在哪里没有关闭。据我所知,看起来不错

错误信息:

At 55:2: literal not terminated

代码如下:

resource "azurerm_network_interface" "tf-ni-erx-sqlcl2" {
 count               = "${var.count_sqlcl2_vm}"
 name                = "${var.sql_base_hostname}${format("%02d",count.index+(var.count_sqlcl1_vm)-nic01"
 location            = "${data.azurerm_resource_group.tf-rg-erx-external.location}"
 resource_group_name = "${data.azurerm_resource_group.tf-rg-erx-external.name}"

ip_configuration {
    name                          = "${var.sql_base_hostname}${format("%02d",count.index+1)}-iip01"
    subnet_id                     = "${data.azurerm_subnet.tf-sn-erx-sql.id}"
    private_ip_address_allocation = "${var.env=="msdn"?"dynamic":"static"}"
    private_ip_address            = "10.112.3.${count.index+15}"
    public_ip_address_id          = "${var.sql_base_hostname}${format("%02d",count.index+1)}-pip01"
}
}

terraform validate 也指出类似 55:2 的错误,但仅此而已,如何获取有关该错误的更多信息?

双引号似乎有问题?但无法弄清楚是哪一个,因为它们都已关闭。

对于您提供的代码,您需要将 azurerm_network_interface 中的名称更改为如下格式:

name = "${var.sql_base_hostname}${format("%02d%s",count.index,var.count_sqlcl1_vm)}-nic01"

还有一点,如果你设置 属性 private_ip_address.

,我建议你对所有网络接口使用静态分配方法