Terraform Azure -添加SQL副本到弹性池



我有一个sql数据库是在一个弹性池,当terraform运行时,它试图将其添加到辅助服务器上的副本,并将其添加到那里的弹性池,但我得到一个错误:

错误:等待创建/更新数据库:(Name "Test"/服务器名"testsql-secondary;/资源组"testnonprod"): Code="InvalidSku"消息="指定的sku 'ElasticPool'无效。">

这是我在主服务器上创建弹性池的地形。

resource "azurerm_mssql_elasticpool" "elastic_pool" {
for_each            = toset(var.elasticpool_list)
name                = each.key
resource_group_name = var.resource_group_name
location            = var.location
server_name         = azurerm_mssql_server.sql_server.name
max_size_gb         = 100
sku {
name     = "StandardPool"
tier     = "Standard"
capacity = 100
}
per_database_settings {
min_capacity = 0
max_capacity = 10
}

创建二级弹性池的代码。

resource "azurerm_mssql_elasticpool" "elastic_pool_secondary" {
for_each            = toset(var.failover_group == "true" ? var.elasticpool_list : [])
name                = each.key
resource_group_name = var.resource_group_name
location            = var.location
server_name         = azurerm_mssql_server.sql_server_secondary[0].name
max_size_gb         = 100
sku {
name     = "StandardPool"
tier     = "Standard"
capacity = 100
}
per_database_settings {
min_capacity = 0
max_capacity = 10
}

和我用来创建数据库的代码。

resource "azurerm_mssql_database" "sql_db" {
for_each                    = var.sql_db_list
name                        = each.key
server_id                   = azurerm_mssql_server.sql_server.id
collation                   = "SQL_Latin1_General_CP1_CI_AS"
read_scale                  = false
sku_name                    = each.value["SKU"]
zone_redundant              = false
min_capacity                = each.value["min_capacity"]
auto_pause_delay_in_minutes = var.auto_pause_delay
elastic_pool_id             = each.value["elasticpool_name"] != "" ? azurerm_mssql_elasticpool.elastic_pool[each.value["elasticpool_name"]].id : null
resource "azurerm_mssql_database" "sql_db_secondary" {
for_each  = var.failover_group == "true" ? var.sql_db_list : {}
name      = each.key
server_id = azurerm_mssql_server.sql_server_secondary.0.id
collation = "SQL_Latin1_General_CP1_CI_AS"
sku_name  = each.value["SKU"]
#zone_redundant              = false
min_capacity                = each.value["min_capacity"]
create_mode                 = "Secondary"
creation_source_database_id = azurerm_mssql_database.sql_db[each.key].id
elastic_pool_id             = each.value["elasticpool_name"] != "" ? azurerm_mssql_elasticpool.elastic_pool_secondary[each.value["elasticpool_name"]].id : null

数据库来自于一个地图,它是这样的

"Test" = {
"SKU"              = "ElasticPool"
"min_capacity"     = "0.5"
"Namespaces"       = [""]
"elasticpool_name" = "test-elasticpool"
}

我已经尝试将SKU更改为一些不同的东西,没有一个工作。当我查看azure门户时,它显示SKU为ElasticPool?如有任何帮助,不胜感激。

我发现这里的问题。创建辅助服务器的资源不需要定义SKU。当我注释掉后,它现在创建了我们想要的辅助服务器,并将其添加到弹性池中。

最新更新