如何用PowerShell脚本修改Azure Data Factory触发器时间
修改ADF现有触发器时间配置的PowerShell操作方案
前置要求
- 账号拥有目标UAT环境ADF实例的参与者及以上操作权限
- 本地已安装Az PowerShell模块,未安装可执行
Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force完成安装
操作步骤
- 登录Azure账号并切换到UAT对应订阅
Connect-AzAccount # 替换为你的UAT环境订阅ID Set-AzContext -SubscriptionId "目标订阅ID"
- 拉取目标触发器的现有配置,避免修改时覆盖其他原有逻辑
# 替换为实际的资源参数 $resourceGroupName = "ADF所在资源组名称" $dataFactoryName = "ADF实例名称" $triggerName = "待修改的触发器名称" $trigger = Get-AzDataFactoryV2Trigger ` -ResourceGroupName $resourceGroupName ` -DataFactoryName $dataFactoryName ` -Name $triggerName
- 停止运行中的触发器,运行状态下无法提交配置修改
Stop-AzDataFactoryV2Trigger ` -ResourceGroupName $resourceGroupName ` -DataFactoryName $dataFactoryName ` -Name $triggerName ` -Force
- 根据触发器类型修改时间配置
注意:所有时间戳必须携带对应时区偏移,东八区示例格式为2024-XX-XXT00:00:00+08:00
- 定时调度触发器(ScheduleTrigger)修改示例:
# 修改触发器生效起始时间 $trigger.Properties.StartTime = [DateTimeOffset]::Parse("2024-06-01T00:00:00+08:00") # 修改调度频率与间隔:示例为每2小时触发 $trigger.Properties.Recurrence.Frequency = "Hour" $trigger.Properties.Recurrence.Interval = 2 # 自定义调度规则:示例为工作日9点到18点间每30分钟触发 $trigger.Properties.Recurrence.Schedule = @{ Minutes = @(0,30) Hours = @(9,10,11,12,13,14,15,16,17,18) WeekDays = @("Monday","Tuesday","Wednesday","Thursday","Friday") }
- 滚动窗口触发器(TumblingWindowTrigger)修改示例:
# 修改窗口起始时间 $trigger.Properties.StartTime = [DateTimeOffset]::Parse("2024-06-01T00:00:00+08:00") # 修改窗口粒度:示例为1小时窗口 $trigger.Properties.Frequency = "Hour" $trigger.Properties.Interval = 1 # 修改窗口触发延迟:示例为窗口结束后延迟10分钟触发 $trigger.Properties.Delay = "00:10:00"
- 提交配置更新并重启触发器
# 提交修改后的配置 Set-AzDataFactoryV2Trigger ` -ResourceGroupName $resourceGroupName ` -DataFactoryName $dataFactoryName ` -Name $triggerName ` -Properties $trigger.Properties ` -Force # 重启触发器使配置生效 Start-AzDataFactoryV2Trigger ` -ResourceGroupName $resourceGroupName ` -DataFactoryName $dataFactoryName ` -Name $triggerName ` -Force
注意事项
- 不要修改拉取到的触发器配置中与时间无关的字段,避免破坏原有触发逻辑、参数传递规则
- 滚动窗口触发器修改起始时间后不会自动补跑历史窗口,仅对修改后新生成的调度窗口生效
- 配置提交完成后可执行
Get-AzDataFactoryV2Trigger -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Name $triggerName | Select-Object -ExpandProperty Properties校验时间参数是否符合预期
内容的提问来源于stack exchange,提问作者sac
相关产品推荐
相关产品推荐

