为何Get-AzDataFactoryV2PipelineRun无法返回InProgress状态的管道运行?
解决Azure Function中PowerShell脚本无法获取ADF InProgress状态管道运行记录的问题
检查Get-AzDataFactoryV2PipelineRun参数配置
- 显式指定包含
InProgress的状态列表,避免默认筛选遗漏:$pipelineRuns = Get-AzDataFactoryV2PipelineRun -DataFactoryName "你的ADF名称" -ResourceGroupName "你的资源组名称" -Status InProgress, Completed, Failed, Cancelled - 确认时间范围参数覆盖当前时间,InProgress状态的管道更新时间可能在你设置的时间区间外:
$startTime = (Get-Date).AddDays(-7) # 根据需求调整起始时间 $endTime = Get-Date $pipelineRuns = Get-AzDataFactoryV2PipelineRun -DataFactoryName "你的ADF名称" -ResourceGroupName "你的资源组名称" -LastUpdatedAfter $startTime -LastUpdatedBefore $endTime -Status InProgress, Completed, Failed, Cancelled
验证Azure Function权限
- 确保Function使用的托管标识(或服务主体)拥有ADF的
Data Factory Contributor权限,或包含Microsoft.DataFactory/factories/pipelineRuns/read的自定义角色,权限不足会导致无法读取InProgress状态的运行记录。
核对目标管道与实例
- 确认ADF中显示的InProgress管道属于你查询的目标数据工厂和管道名称,可先不指定管道名,查询所有管道的近期运行记录排查:
$allInProgressRuns = Get-AzDataFactoryV2PipelineRun -DataFactoryName "你的ADF名称" -ResourceGroupName "你的资源组名称" -Status InProgress -LastUpdatedAfter (Get-Date).AddHours(-1)
更新Az.DataFactory模块版本
- 旧版本的Az.DataFactory模块可能存在兼容性问题,在Azure Function环境中更新到最新稳定版:
运行命令:
或在requirements.psd1中指定版本:Update-Module -Name Az.DataFactory -Force@{ 'Az.DataFactory' = '>= 1.13.0' # 替换为当前最新版本号 }
排查延迟或缓存问题
- ADF的运行记录可能存在短暂延迟,尤其是InProgress状态的条目,可扩大时间范围或等待几分钟后重试。同时建议直接在云端测试脚本,排除本地环境的缓存干扰。
内容的提问来源于stack exchange,提问作者Azat Baatyrbekov
相关产品推荐
相关产品推荐

