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

Azure DevOps中执行terraform apply报错TypeError: Cannot read property 'includes' of null

错误原因定位

你遇到的TypeError: Cannot read property 'includes' of null报错不是Terraform本身执行抛出的错误,属于Azure DevOps官方Terraform任务插件的内部解析错误,触发原因是插件读取到了预期外的null值,对空值调用了字符串的includes方法。

修复步骤

  • 优先修复Terraform配置文件的语法问题:
    1. 你提供的tf配置中azurerm_api_management_api资源的import块缺少闭合的},会导致配置解析失败
    2. 检查#{storageaccountlink}#占位符是否已经在管道前置步骤完成替换,未替换的占位符会被识别为非法值,导致配置解析返回空
    3. 修正变量大小写不一致问题:data "azurerm_api_management"中用的是var.apimName,资源块中用的是var.apimname,大小写不同会导致变量取值为空
  • 修复DevOps管道任务配置问题:
    1. 第一个任务的backendAzureRmStorageAccountName和backendAzureRmContainerName参数没有给变量加单引号,变量解析为空时会直接给参数赋值null,修改为:
    backendAzureRmStorageAccountName: '$(strname)'
    backendAzureRmContainerName: '$(tfContainer)'
    
    1. 第二个apply任务没有配置backend相关参数,和plan阶段的状态存储配置不一致,会导致读取状态文件失败返回null,必须补全和plan阶段完全相同的backend配置
    2. 第二个任务的commandOptions参数写的是--auto-approve,多了一个前导横杠,Terraform apply的正确参数是-auto-approve,错误参数会触发插件解析异常
  • 替换任务版本:
    TerraformTaskV2已经停止维护,对新的Terraform版本和配置语法兼容性较差,直接将任务替换为最新的TerraformTaskV4@4版本即可解决大部分插件内部错误
  • 前置变量校验:
    在Terraform任务前新增一个PowerShell/Bash任务,打印所有用到的管道变量值,确认$(rgname)、$(strname)、$(tfContainer)、$(storagekey)等变量均存在有效值,没有空值情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:54:01