Terraform配置Azure SQL Server报错:azurerm_sql_server资源未声明求助
问题排查与解决
错误根源
你定义的SQL Server资源类型是azurerm_mssql_server,但防火墙规则配置里引用的是azurerm_sql_server.sqlserver1251.name——两者的资源类型前缀不匹配,导致Terraform无法找到对应的已声明资源,从而抛出错误。
修复方案
修改防火墙规则中的server_name字段,将资源类型前缀修正为和你定义的SQL Server一致的azurerm_mssql_server:
### Creates Azure SQL server firewall rule resource "azurerm_sql_firewall_rule" "sql_server" { for_each = var.sql_server_firewall_rules name = each.key resource_group_name = azurerm_resource_group.template_grp.name server_name = azurerm_mssql_server.sqlserver1251.name # 修正资源类型前缀 start_ip_address = each.value.start_ip_address end_ip_address = each.value.end_ip_address }
额外检查点
- 确保SQL Server配置文件与防火墙规则配置文件在同一个根模块下;如果分属不同模块,需通过模块输出值引用,而非直接使用资源地址。
- 确认
azurerm_resource_group.template_grp资源已正确声明,避免后续出现资源组不存在的关联错误。
内容的提问来源于stack exchange,提问作者okamigo
相关产品推荐
相关产品推荐

