Azure data factory 如何基于IF任务使Azure Data Factory管道失败

Azure data factory 如何基于IF任务使Azure Data Factory管道失败,azure-data-factory,Azure Data Factory,我有一个基于Azure数据工厂的管道。它有: 具有返回列[CountRecs]的SQL查询的“查找”任务。此列包含的值为0或更大 检查此返回值的“如果”任务。当[CountRecs]的值大于0时,我希望管道失败 这是可能的吗?当IF条件为true([CountRecs]>0)时,您可能需要一个Web活动来实现这一点,其中Web活动应该调用下面的REST API以使用pipelinerunID取消管道运行(您可以使用动态表达式-@pipeline().RunId) 条件的示例动态表达式:@grea

我有一个基于Azure数据工厂的管道。它有:

  • 具有返回列[CountRecs]的SQL查询的“查找”任务。此列包含的值为0或更大

  • 检查此返回值的“如果”任务。当[CountRecs]的值大于0时,我希望管道失败


  • 这是可能的吗?

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

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

    用于取消管道运行的REST API:POST

    与Rest API相关的MS文档:

    另一种可能的方法是在web活动中有一个无效的URL,这将使web活动失败,反过来,它将使IfCondition活动失败,这将导致管道失败

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

    与此要求相关的ADF用户语音反馈:


    希望这有帮助。

    作为一种黑客解决方案,您可以创建一个“Set variable”活动,如果满足某个条件,该活动将导致被零除。我不喜欢,但它很管用

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

    谢谢你的帮助。我只是按照建议调用了一个无效的web url(该url甚至是描述性的,例如:)嗨,KranthiPakala MSFT,我按照您的方式使用web活动取消管道运行,但我发现授权标头丢失错误。我有clientId和clientSecret,但我仍然感到困惑,因为rest调用需要令牌或授权代码。请注意:用户对此功能的反馈已经存在2年了。所以,唯一的办法就是像你说的那样,制定一个变通办法,并使用一个旨在故意失败的活动。我也这么认为。但看起来并没有像执行管道那个样的“失败管道”。