gpt4 book ai didi

azure - 根据 `azurerm_postgresql_flexible_server` 的变量有条件地配置高可用性

转载 作者:行者123 更新时间:2023-12-03 06:38:08 28 4
gpt4 key购买 nike

我正在使用 terraform 配置我的服务器。对于非产品环境,我们的 sku 不允许高可用性,但在产品中我们的 sku 允许。

出于某种原因,high_availability.mode 仅接受“ZoneRedundant”值以实现高可用性,但不接受任何其他值(根据文档)。根据 var.isProd 是否为真,我想打开和关闭高可用性,但我该怎么做?

resource "azurerm_postgresql_flexible_server" "default" {
name = "example-${var.env}-postgresql-server"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
version = "14"
administrator_login = "sqladmin"
administrator_password = random_password.postgresql_server.result

geo_redundant_backup_enabled = var.isProd
backup_retention_days = var.isProd ? 60 : 7

storage_mb = 32768

high_availability {
mode = "ZoneRedundant"
}

sku_name = var.isProd ? "B_Standard_B2s" : "B_Standard_B1ms"
}

最佳答案

我相信此资源的默认分配将禁用 HA,因此管理 HA 的不是参数 mode,而是 high_availability 的存在堵塞。因此,您可以通过排除接受默认“已禁用”的 block 来管理 HA,或者包含以 ZoneRedundant 值启用的 block 来管理 HA:

dynamic "high_availability" {
for_each = var.isProd ? ["this"] : []

content {
mode = "ZoneRedundant"
}
}

我对 API 端点参数默认值进行了一些假设,因此需要使用 Azure 帐户进行验收测试。但是,Azure Postgres 灵活服务器的文档一般声称 HA 实际上默认情况下处于禁用状态,因此这应该可以按需要运行。

关于azure - 根据 `azurerm_postgresql_flexible_server` 的变量有条件地配置高可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74726093/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com