请求编写PowerShell脚本获取Azure Data Factory触发器列表及调度信息
PowerShell脚本获取Azure Data Factory触发器调度信息
前提准备
- 安装Azure Data Factory模块:
Install-Module -Name Az.DataFactory -Force -AllowClobber - 登录Azure账号:
Connect-AzAccount
脚本实现
# 替换为你的资源组和ADF名称 $resourceGroupName = "YourResourceGroup" $dataFactoryName = "YourDataFactory" # 获取目标ADF实例 $dataFactory = Get-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Name $dataFactoryName # 获取ADF中所有触发器 $triggers = Get-AzDataFactoryV2Trigger -DataFactory $dataFactory # 存储结果的集合 $triggerScheduleInfo = @() foreach ($trigger in $triggers) { # 只处理调度型触发器(ScheduleTrigger) if ($trigger.Type -eq "ScheduleTrigger") { $schedule = $trigger.Properties.Schedule $scheduleTime = "" # 根据触发器频率解析调度时间 switch ($schedule.Frequency) { "Daily" { # 每日调度取具体时间点,多个时间用逗号分隔 $scheduleTime = $schedule.DailyTime -join "," } "Hourly" { # 小时级调度显示间隔和分钟偏移 $scheduleTime = "每$($schedule.Interval)小时,第$($schedule.HourlySchedule.Minutes)分钟执行" } "Weekly" { # 每周调度取周几和时间点 $days = $schedule.WeeklySchedule.Days -join "," $times = $schedule.WeeklySchedule.Times -join "," $scheduleTime = "周$days $times" } "Monthly" { # 每月调度分固定日期和周次两种情况 if ($schedule.MonthlySchedule.MonthDays) { $days = $schedule.MonthlySchedule.MonthDays -join "," $times = $schedule.MonthlySchedule.Times -join "," $scheduleTime = "每月$days日 $times" } else { $weekOccur = $schedule.MonthlySchedule.WeeklyOccurrence $times = $schedule.MonthlySchedule.Times -join "," $scheduleTime = "每月第$($weekOccur.Occurrence)个$($weekOccur.Day) $times" } } default { $scheduleTime = "无法识别的调度频率" } } # 将信息添加到结果集合 $triggerScheduleInfo += [PSCustomObject]@{ TriggerName = $trigger.Name Frequency = $schedule.Frequency ScheduleTime = $scheduleTime } } } # 输出指定格式的结果(控制台) $triggerScheduleInfo | ForEach-Object { "$($_.TriggerName),$($_.Frequency),$($_.ScheduleTime)" } # 可选:导出到CSV文件 # $triggerScheduleInfo | Export-Csv -Path "ADF_Trigger_Schedules.csv" -NoTypeInformation -Encoding UTF8
说明
- 脚本仅处理ScheduleTrigger类型的触发器,因为翻滚窗口、事件触发等类型没有固定的调度时间
- 针对不同频率的触发器做了适配,尽量输出直观的调度时间信息
- 可以注释掉控制台输出,启用CSV导出以便后续分析
内容的提问来源于stack exchange,提问作者Rasith
相关产品推荐
相关产品推荐

