добавить несколько azure sql правил брандмауэра в terraform - PullRequest
0 голосов
/ 25 января 2020

У меня есть следующий код, который добавляет одно правило брандмауэра

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 голосов
/ 28 января 2020

Как я знаю, есть два способа создать несколько правил в одном коде.

Одним из них является использование свойства count в ресурсе. Таким образом, вы можете использовать count.index для именования правил и использовать список для хранения start_ip_address и end_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 l oop в вашем ресурсе. Взгляните на документ , чтобы узнать об этом. Это немного сложно, но я думаю, что это не проблема для вас.

...