从Azure函数访问管道活动状态
我有一个Azure函数,它可以触发管道,并且我能够轮询管道状态以检查它何时完成,使用:从Azure函数访问管道活动状态,azure,azure-functions,azure-data-factory,Azure,Azure Functions,Azure Data Factory,我有一个Azure函数,它可以触发管道,并且我能够轮询管道状态以检查它何时完成,使用:Pipeline.Properties.RuntimeInfo.PipelineState 我的管道使用多个并行复制活动,我希望能够在这些活动失败时访问它们的状态。Azure文档描述了如何访问管道活动,但您只能获取名称和描述等静态属性,而不能获取状态等动态属性(就像您可以通过其RuntimeInfo属性获取管道) 为了完整起见,我使用以下方法访问了活动列表: IList<Microsoft.Azure.M
Pipeline.Properties.RuntimeInfo.PipelineState
我的管道使用多个并行复制活动,我希望能够在这些活动失败时访问它们的状态。Azure文档描述了如何访问管道活动,但您只能获取名称和描述等静态属性,而不能获取状态等动态属性(就像您可以通过其RuntimeInfo属性获取管道)
为了完整起见,我使用以下方法访问了活动列表:
IList<Microsoft.Azure.Management.DataFactories.Models.Activity> activityList = plHandle.Pipeline.Properties.Activities;
IList activityList=plHandle.Pipeline.Properties.Activities;
是否可以通过编程方式检查单个活动状态?当然可以 我在Azure模块中使用ADF PowerShell cmdlet来监视我们的数据工厂 使用Get-AzureRmDataFactoryActivityWindow命令,您可能需要执行以下操作 例如: 这将为您提供活动级别的详细信息,包括状态。是:
- 准备好了吗
- 进行中
- 等待
- 失败
希望这有帮助我已通过访问管道的数据许可运行(即活动)来解决此问题,如下所示:
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...
}
}
var-datasets=client.datasets.ListAsync(,).Result;
foreach(dataset.dataset中的var数据集)
{
//检查管道活动的活动状态。
var dataslicerunlistress=client.DataSliceRuns.List(,,新DataSliceRunListParameters()
{
DataSliceStartTime=PipelineStartTime.ConvertToISO8601DateTimeString()
});
foreach(DataSlicerRunListResponse.DataSlicerRuns中的DataSlicerRun运行)
{
//做些事情。。。
}
}
您好,谢谢您的回复。使用您的Powershell示例,我已经能够找到相应REST API调用的以下链接:[因为我正试图使用C#实现这一点。如果我能让它工作,我将发布另一个回复。谢谢。
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...
}
}