You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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扩展在应用自定义排序规则时,因资源不足或区域服务延迟导致操作卡顿,触发轮询超时

解决方案

  1. 延长Terraform资源超时时间
    在azurerm_mssql_virtual_machine资源块中添加timeouts配置,为创建/更新操作分配足够时长,示例:

    resource "azurerm_mssql_virtual_machine" "this" {
      # 原有配置(虚拟机名称、资源组、SQL版本等)
      collation = "Latin1_General_BIN"
    
      timeouts {
        create = "30m"
        update = "30m"
      }
    }
    
  2. 检查虚拟机基础配置

    • 确认虚拟机规格满足SQL Server配置修改的资源需求,避免因CPU/内存不足导致操作延迟
    • 查看目标区域的Azure服务健康状态,排除区域性故障影响
  3. 分阶段部署
    拆分部署流程,降低单次操作的超时风险:

    • 第一阶段:部署不指定collation参数的SQL VM,待资源创建完成
    • 第二阶段:添加collation = "Latin1_General_BIN"配置,执行terraform apply完成排序规则更新

内容的提问来源于stack exchange,提问作者Sorin Ionescu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:12:43