在Terraform中添加多个Azure SQL防火墙规则

时间:2020-01-25 11:12:22

标签: terraform terraform-provider-azure

我有以下代码,添加了一条防火墙规则

resource "azurerm_sql_firewall_rule" "main" {
    name                        = "${azurerm_sql_server.main.name}-firewall"
    resource_group_name         = var.resource_group_name
    server_name                 = azurerm_sql_server.main.name
    start_ip_address            = "0.0.0.0"
    end_ip_address              = "0.0.0.0"
}

我需要添加一些规则,我该如何在terraform中执行此操作,并且值可以来自配置文件?

1 个答案:

答案 0 :(得分:0)

据我所知,有两种方法可以在同一代码中创建许多规则。

一种是在资源中使用count属性。这样,您可以使用count.index命名规则,并使用列表存储start_ip_addressend_ip_address,如下所示:

resource "azurerm_sql_firewall_rule" "main" {
    count                       = "${var.rule_number}"

    name                        = "${azurerm_sql_server.main.name}-firewall-${count.index}"
    resource_group_name         = var.resource_group_name
    server_name                 = azurerm_sql_server.main.name
    start_ip_address            = "${element(var.start_ip_address, count.index)}"
    end_ip_address              = "${element(var.end_ip_address, count.index)}"
}

这是我向您推荐的方式,它简单又合适。

另一种方法是在资源中使用for和for_each循环。看一下document来了解它。有点困难,但我认为这对您来说不是问题。

相关问题