如何基于IF任务使Azure数据工厂管道失败



我有一个在Azure数据工厂上构建的管道。它有:

  1. 一个"LookUp"任务,它有一个返回列[CountRecs]的SQL查询。此列的值为0或更大。

  2. 检查此返回值的"if"任务。当[CountRecs]的值>0 时,我想使管道失败

这可能吗?

当IF条件为真([CountRecs]>0(时,您可能会通过使用Web活动来实现这一点,在该Web活动中,Web活动应该调用下面的REST API来取消使用pipelinerunID运行的管道(您可以通过使用动态表达式-@pipeline().RunId获得该值(

条件的样本动态表达式:@greater(activity('LookupTableRecordCount').output.firstRow.COUNTRECS, 0)

REST API取消管道运行:POSThttps://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/工厂/{factoryName}/pipelineruns/{runId}/取消?api版本=2018-06-01

与Rest API相关的MS文档:ADF管道运行-取消

另一种可能的方法是在您的web活动中有一个无效的URL,这将使web活动失败,进而使IfCondition活动失败,这将导致您的管道失败。

其他ADF用户建议在ADF用户语音论坛中存在与相同要求相关的现有功能请求。我建议您对此反馈进行投票和/或评论,这将有助于提高功能请求实现的优先级。

ADF与此要求相关的用户语音反馈:https://feedback.azure.com/forums/270578-data-factory/suggestions/38143873-a-new-activity-for-cancelling-the-pipeline-executi

希望这能有所帮助。

作为一种破解解决方案,您可以创建一个;设置变量";如果满足某个条件,则会被零除的活动。我不喜欢它,但它很管用。

@string( 
div(
1 
, if(
greater( int(variables('date_diff')), 100 )
, 0
, 1
)
) 
)

相关内容

  • 没有找到相关文章

最新更新