如何在ADF中处理管道手动取消以同步流程表
Azure Data Factory 管道取消事件触发流程表同步方案
可以通过以下几种方式在ADF中实现管道取消时的流程表同步:
逻辑应用联动ADF事件
- 在Azure逻辑应用中创建「Azure Data Factory 管道运行事件」触发器,筛选事件类型为管道取消(对应状态
Cancelled) - 在逻辑应用中添加数据操作(如执行SQL语句、调用子管道),将流程表中对应管道运行记录的状态更新为「已取消」,同步相关运行信息
- 配置逻辑应用与ADF的权限关联,确保具备ADF运行事件读取权限和流程表的写入权限
- 在Azure逻辑应用中创建「Azure Data Factory 管道运行事件」触发器,筛选事件类型为管道取消(对应状态
Azure Monitor日志触发自动化
- 在Azure Monitor中创建日志查询,筛选ADF管道运行状态为
Cancelled的记录,示例查询语句:AzureDiagnostics | where ResourceProvider == "MICROSOFT.DATAFACTORY" | where OperationName == "PipelineRunCompleted" | where status_s == "Cancelled" - 基于该查询创建警报规则,触发条件设为「查询返回结果数大于0」
- 警报触发后,调用自动化账户Runbook或逻辑应用,执行流程表的更新操作
- 在Azure Monitor中创建日志查询,筛选ADF管道运行状态为
自定义状态监控脚本
- 编写Azure函数或PowerShell脚本,通过ADF REST API定期查询管道运行状态:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/pipelineruns?api-version=2018-06-01 - 脚本中判断运行状态是否为
Cancelled,若匹配则调用数据库接口更新流程表对应记录
- 编写Azure函数或PowerShell脚本,通过ADF REST API定期查询管道运行状态:
注意事项
- 流程表需存储管道运行的唯一标识(如
runId),确保精准匹配待更新记录 - 所有自动化组件(逻辑应用、Azure函数等)需配置足够权限,避免执行失败
- 测试时手动取消管道运行,验证流程表同步逻辑是否生效
内容的提问来源于stack exchange,提问作者d2907
相关产品推荐
相关产品推荐

