azure - 如何使 terraform 资源中的字段成为可选字段?

标签 azure terraform

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

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}"

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

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

任何人都可以帮助我如何在这种情况下使用条件来处理这两种情况吗?

最佳答案

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

关于azure - 如何使 terraform 资源中的字段成为可选字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48306089/

相关文章:

terraform - 尝试在 terraform 中运行多个区域时出现重复错误

用于限制数据库扩展的 Azure 策略

azure - 在 Azure 中通过授权保护 Web api 的安全有哪些方法

python-3.x - Azure 文件服务 "PUT Range"REST API 'InvalidHeaderValue' 错误

aws-lambda - terraform 中的文件功能未检测到路径中的文件

bash - 如何使用 Terraform 将文件夹/文件从 Git 存储库上传到 S3 存储桶?

azure - 调用刷新 token 时 id_token 格式错误

azure - 在 Azure Log Analytics 中查看自定义应用程序日志时出现问题

docker - docker swarm join token 是私有(private)的吗?

azure - 如何在 Terraform 中验证 IP 地址?