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

使用Terraform azurerm_data_factory_trigger_schedule配置月度触发器activated参数报错

问题根因

该报错属于旧版azurerm Terraform Provider的已知缺陷,并非你的配置存在错误:
当触发器频率设置为Month且同时配置activated = true时,v3.42.0之前的azurerm Provider会在向Azure ADF API提交请求时,自动为schedule块注入隐式的days_of_week字段(即使你没有显式配置该参数),而Azure ADF的原生规则明确限制:月频率的调度触发器不允许出现WeekDays相关参数,哪怕是空值也会触发校验报错。

解决方案

你可以选择以下任意一种方式解决问题:

  • 方案1:升级azurerm Provider到3.42.0及以上版本。该版本已经针对这个缺陷做了适配修复,你现有的配置不需要做任何修改即可正常部署,触发器会自动设置为已启动状态。
  • 方案2:如果你暂时无法升级Provider版本,可以先移除资源中的activated = true配置,额外通过null_resource调用Azure CLI命令后置激活触发器,示例配置如下:
# 原有触发器配置,移除activated参数
resource "azurerm_data_factory_trigger_schedule" "pipeline_trigger" {
  name                = "Pipeline_MonthlyTrigger"
  data_factory_name   = "dataFactoryName"
  resource_group_name = "resourceGroupName"
  pipeline_name       = "pipelineName"

  frequency           = "Month"
  interval            = 1

  schedule  {
    days_of_month     = [4]
    hours             = [13]
    minutes           = [0]
  }
}

# 后置激活触发器
resource "null_resource" "activate_trigger" {
  depends_on = [azurerm_data_factory_trigger_schedule.pipeline_trigger]

  provisioner "local-exec" {
    command = <<EOT
az data factory trigger start \
  --name ${azurerm_data_factory_trigger_schedule.pipeline_trigger.name} \
  --factory-name ${azurerm_data_factory_trigger_schedule.pipeline_trigger.data_factory_name} \
  --resource-group ${azurerm_data_factory_trigger_schedule.pipeline_trigger.resource_group_name}
EOT
  }
}

使用方案2需要确保执行Terraform的环境已经安装Azure CLI并完成身份认证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:24:02