Terraform部署Azure SQL虚拟机设置排序规则超时报错求助
排查Terraform部署Azure SQL虚拟机自定义排序规则导致的超时错误
当使用Terraform的azurerm_mssql_virtual_machine资源部署Azure SQL虚拟机时,启用自定义排序规则collation = "Latin1_General_BIN"后触发以下超时错误,默认配置(不指定排序规则)时可正常创建:
│ Error: creating Sql Virtual Machine (Subscription: "33f912" │ Resource Group Name: "RG_TEST" │ Sql Virtual Machine Name: "we-test-01"): polling after CreateOrUpdate: Code="Ext_AutomatedBackupError" Message="Error: 'Time out has expired and the operation has not been completed.'" │ │ with module.sql.azurerm_mssql_virtual_machine.this["sql_vm_01"], │ on .terraform/modules/sql/main.tf line 263, in resource "azurerm_mssql_virtual_machine" "this": │ 263: resource "azurerm_mssql_virtual_machine" "this" {
可能的原因
- 自定义排序规则的配置需要额外的SQL Server内部操作(如修改系统数据库排序规则、重启SQL服务),耗时超出Terraform默认的超时阈值
- Azure SQL VM扩展在应用自定义排序规则时,因资源不足或区域服务延迟导致操作卡顿,触发轮询超时
解决方案
延长Terraform资源超时时间
在azurerm_mssql_virtual_machine资源块中添加timeouts配置,为创建/更新操作分配足够时长,示例:resource "azurerm_mssql_virtual_machine" "this" { # 原有配置(虚拟机名称、资源组、SQL版本等) collation = "Latin1_General_BIN" timeouts { create = "30m" update = "30m" } }检查虚拟机基础配置
- 确认虚拟机规格满足SQL Server配置修改的资源需求,避免因CPU/内存不足导致操作延迟
- 查看目标区域的Azure服务健康状态,排除区域性故障影响
分阶段部署
拆分部署流程,降低单次操作的超时风险:- 第一阶段:部署不指定
collation参数的SQL VM,待资源创建完成 - 第二阶段:添加
collation = "Latin1_General_BIN"配置,执行terraform apply完成排序规则更新
- 第一阶段:部署不指定
内容的提问来源于stack exchange,提问作者Sorin Ionescu
相关产品推荐
相关产品推荐

