如何在terraform资源内使字段可选?

Rah*_*hul 5 azure terraform

我正在尝试为群集和单节点部署创建VM。

resource "azurerm_virtual_machine" "app" {
    name   = "${var.name_prefix}-${format("%02d", count.index+1)}"
    location = "${var.location}"
    resource_group_name = "${azurerm_resource_group.resourcegroup.name}"
    availability_set_id   = "${azurerm_availability_set.avset.id}"
    network_interface_ids = ["${element(azurerm_network_interface.networkinterface-app.*.id, count.index+1)}"]
    vm_size = "${var.vm_size}"
    count = "${var.app_nodes}"
Run Code Online (Sandbox Code Playgroud)

该设置对于配置了availability_set_id配置的群集节点部署效果很好,但是由于在单节点中我不需要配置,因此安装失败availability_set_id

我正在使用Terraform v0.11.2* provider.azurerm: version = "~> 1.0"作为terraform和azurerm提供程序的版本。

谁能帮我在这种情况下如何使用条件处理两种情况?

小智 2

我认为您需要将其包装在一个模块中,然后拥有两个资源并使用count = "${var.somecond ? 1 : 0}"确定哪一个是活动的。