terraform的语法检查工具

terraform的语法检查工具,terraform,terraform-provider-azure,Terraform,Terraform Provider Azure,我得到下面提到的错误,但我没有线索,哪里是报价未关闭。据我所知,看起来也不错 错误消息: 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("%0

我得到下面提到的错误,但我没有线索,哪里是报价未关闭。据我所知,看起来也不错

错误消息:

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\u网络接口中的名称更改为以下格式:

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

还有一点,我建议您对所有网络接口使用静态分配方法,如果您设置属性
private\u ip\u address

我不认为您可以在引号中使用引号?它确实有效,以前有效,可能在第3行缺少右括号(var.count\u sqlcl1\u vm)<代码>“${var.sql\u base\u hostname}${格式(“%02d”,count.index+(var.count\u sqlcl1\u vm)-nic01”
应为“${var.sql\u base\u hostname}${格式(“%02d”,count.index+(var.count\u sqlcl1\u vm)-nic01}”结束投票,因为这只是一个输入错误。一般来说,你应该计算你的开始/结束内容,或者使用一个文本编辑器来为你做这些。这不是输入错误,这是错误的理解,我现在从Charles XuHi Charles的回复中了解到,如果有快速路线和“动态”,我想将ip地址设置为“静态”/“私有”/如果没有快速路由,则使用公共IP。因此,本质上,如果环境是MSDN,则它应该使用动态的公共IP。如果环境不是MSDN,则使用私有IP,因为订阅已附加,否则使用公共IPIP@learner好吧,如果是这样的话,我想你也应该为
私有ip\u地址
.private\u ip\u地址=“${var.env==“msdn”?:“10.112.3.${count.index+10}”这样行吗?我正在使用它,但每次插值都会让我失败!@learner也许if语句更合适。就像
if$(var.env){private\u ip\u address=“10.112.3.${count index+10}}
。或者进行类似
private\u ip\u address=“${var.env==”msdn 10.112.3的更改${count.index+10}”:““