2017-04-19 79 views
1

我有一个Azure的功能,其触发管线管道访问活动状态,我能查询管道状况检查它完成时使用:Pipeline.Properties.RuntimeInfo.PipelineState从Azure的功能

我的管道使用了几个并行副本活动,我希望能够在失败后访问这些活动的状态。 Azure文档描述了如何访问管道活动,但您只能获取像名称和描述这样的静态属性,而不能获取状态等动态属性(就像您可以通过其RuntimeInfo属性获取管道一样)。

为了完整起见,我已经访问使用活动列表:

IList<Microsoft.Azure.Management.DataFactories.Models.Activity> activityList = plHandle.Pipeline.Properties.Activities; 

是否有可能来检查每一个活动状态编程?

回答

0

我已经成功通过访问DataSliceRuns(即活动)的管道来解决这个如下:

var datasets = client.Datasets.ListAsync(<resourceGroupName>, <DataFactoryName>).Result; 

    foreach (var dataset in datasets.Datasets) 
    { 
     // Check the activity statuses for the pipelines activities. 
     var datasliceRunlistResponse = client.DataSliceRuns.List(<resourceGroupName>, <dataFactoryName>,<DataSetName>, new DataSliceRunListParameters() 
                     { 
                      DataSliceStartTime = PipelineStartTime.ConvertToISO8601DateTimeString() 
                     }); 

     foreach (DataSliceRun run in datasliceRunlistResponse.DataSliceRuns) 
     { 
      // Do stuff... 
     } 
    } 
1

它当然有可能。

我使用Azure模块中的ADF PowerShell cmdlet来监视我们的数据工厂。

也许会像下面这样为您的需求使用Get-AzureRmDataFactoryActivityWindow命令。

如:

$ActivityWindows = Get-AzureRmDataFactoryActivityWindow ` 
    -DataFactoryName $ADFName.DataFactoryName ` 
    -ResourceGroupName $ResourceGroup ` 
    | ? {$_.WindowStart -ge $Now} ` 
    | SELECT ActivityName, ActivityType, WindowState, RunStart, InputDatasets, OutputDatasets ` 
    | Sort-Object ActivityName 

这给你的活动水平的细节,包括状态。作为:

  • 准备
  • 在进步
  • 等待
  • 失败

...我列出了他们,因为他们从你的门户叶片看到略有不同。

如果您有特定活动的多个输入和输出,数据集也是数组。

更多ADF的cmdlet可在这里:https://docs.microsoft.com/en-gb/powershell/module/azurerm.datafactories/?view=azurermps-3.8.0

希望这有助于

+0

喜, 感谢回复。使用Powershell示例,我可以找到以下指向相应REST API调用的链接:[https://docs.microsoft.com/en-us/rest/api/datafactory/data-factory-pipeline#list- activity-windows-by-activity],因为我试图用C#来实现这一点。我发布另一个答复,如果我得到它的工作。谢谢。 –