2017-04-19 58 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#來實現這一點。我發佈另一個答覆,如果我得到它的工作。謝謝。 –