terraform network_interface_ids - 属性值不合适
terraform network_interface_ids - Inappropriate value for attribute
我正在尝试将“azurerm_virtual_machine”中的“network_interface_ids”设置为我的模块之一的输出,但在“terraform plan”期间收到以下错误并且可以不知道我哪里出错了:
│ Error: Incorrect attribute value type
│
│ on modules/virtualmachine/main.tf line 6, in resource "azurerm_virtual_machine" "vm":
│ 6: network_interface_ids = [var.nicid]
│ ├────────────────
│ │ var.nicid is a list of string, known only after apply
│
│ Inappropriate value for attribute "network_interface_ids": element 0:
│ string required.
╵
##[error]Bash exited with code '1'.
我确定这很简单,我没有将它拆分成模块就可以正常工作,只是不太明白。我在下面附上了所有相关代码(显然删除了大部分代码以帮助简洁):
main.tf
module "virtualmachine" {
source = "./modules/virtualmachine"
nicid = module.networking.nicidoutput
}
modules/networking/main.tf
resource "azurerm_network_interface" "nic" {
name = var.nicname
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
}
modules/networking/outputs.tf
output "nicidoutput" {
value = azurerm_network_interface.nic.id
}
modules/virtualmachine/main.tf
resource "azurerm_virtual_machine" "vm" {
network_interface_ids = [var.nicid]
}
modules/virtualmachine/variables.tf
variable "nicid" {
type = list(string)
description = "network interface id"
}
您的 var.nicid
已经是一个列表。所以应该是:
network_interface_ids = var.nicid
更新:
还应在 virtualmachine
中更改以下内容
nicid = [module.networking.nicidoutput] for virtualmachine
我正在尝试将“azurerm_virtual_machine”中的“network_interface_ids”设置为我的模块之一的输出,但在“terraform plan”期间收到以下错误并且可以不知道我哪里出错了:
│ Error: Incorrect attribute value type
│
│ on modules/virtualmachine/main.tf line 6, in resource "azurerm_virtual_machine" "vm":
│ 6: network_interface_ids = [var.nicid]
│ ├────────────────
│ │ var.nicid is a list of string, known only after apply
│
│ Inappropriate value for attribute "network_interface_ids": element 0:
│ string required.
╵
##[error]Bash exited with code '1'.
我确定这很简单,我没有将它拆分成模块就可以正常工作,只是不太明白。我在下面附上了所有相关代码(显然删除了大部分代码以帮助简洁):
main.tf
module "virtualmachine" {
source = "./modules/virtualmachine"
nicid = module.networking.nicidoutput
}
modules/networking/main.tf
resource "azurerm_network_interface" "nic" {
name = var.nicname
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
}
modules/networking/outputs.tf
output "nicidoutput" {
value = azurerm_network_interface.nic.id
}
modules/virtualmachine/main.tf
resource "azurerm_virtual_machine" "vm" {
network_interface_ids = [var.nicid]
}
modules/virtualmachine/variables.tf
variable "nicid" {
type = list(string)
description = "network interface id"
}
您的 var.nicid
已经是一个列表。所以应该是:
network_interface_ids = var.nicid
更新:
还应在 virtualmachine
nicid = [module.networking.nicidoutput] for virtualmachine