哪些资源可以嵌套在Azure terraform的另一个资源中?
即使virtual_machine包含参数network_interface_ids,我们也可以在VM部署(virtual_machine)中嵌套以下资源的创建:network_interface / IP_configuration吗?我可以假设最好将network_interface / IP配置放在此VM嵌套之外吗?
更重要的是,我们如何知道哪些资源可以嵌套,哪些资源不能嵌套?
答案 0 :(得分:1)
通常不会嵌套Terraform中的资源。该文档通常会介绍是否有进行资源内联的潜力,这种情况很少见。
通常,您在同一级别上创建所有资源,然后引用虚拟机内部的NIC ID或IP配置。另一个与在Terraform文件中定义它们无关紧要。 Terraform将为您构建一个依赖关系图,以确定需要创建资源的顺序。
您可以在文档的示例中看到这一点:
resource "azurerm_network_interface" "main" {
name = "${var.prefix}-nic"
location = "${azurerm_resource_group.main.location}"
resource_group_name = "${azurerm_resource_group.main.name}"
ip_configuration {
name = "testconfiguration1"
subnet_id = "${azurerm_subnet.internal.id}"
private_ip_address_allocation = "Dynamic"
}
}
resource "azurerm_virtual_machine" "main" {
name = "${var.prefix}-vm"
location = "${azurerm_resource_group.main.location}"
resource_group_name = "${azurerm_resource_group.main.name}"
network_interface_ids = ["${azurerm_network_interface.main.id}"]
vm_size = "Standard_DS1_v2"
# Adding Availability zones
zones = [1]
}
这里是示例的link。