azure - 如何从 ADF 中的执行管道获取输出参数?
问题描述
我有一个 databricks 管道可以提供输出,但目前,我需要从 Executed Pipelines 运行 databricks,当我尝试运行它时,我的 databricks 输出没有显示在 Executed Pipelines 上?这个管道不能显示输出吗?
所以这是我的 Databricks 输出结果。
[![在此处输入图片描述][1]][1]
这是我的执行管道。
如何runOutput
从 Executed Pipeline 获得结果?
解决方案
您可以使用 Azure REST API 查询活动运行,因此您可以执行 API 调用以获取您感兴趣的管道的最后一次管道运行。然后使用这些详细信息调用另一个 REST API 以获取该活动的输出您感兴趣的管道 RunID。
此方法的好处是不需要将输出写入文件或数据库,而您只需在 ADF 的 Azure Monitor 日志中查找该活动的输出即可。它还可用于从完全不同的数据工厂获取活动输出。
您实际上可以参考这篇文章来展示如何使用 Azure REST API for ADF 来查询管道和活动运行:
这里重要的部分是主体和操作数:
以下是有关如何使用查询管道 API 的 Microsoft 文档:
https://docs.microsoft.com/en-us/rest/api/datafactory/pipeline-runs/query-by-factory
这是有关如何查询活动 API 的 Microsoft 文档:
https://docs.microsoft.com/en-us/rest/api/datafactory/pipeline-runs/query-by-factory
因此,您可以做的是找到使用管道 API 运行的子管道的 Pipeline RunID,然后使用它来使用 Activity API 查询该管道中的特定活动执行。
真实例子:
父管道:
子管道:
使用 Web 请求获取子管道的最后一次管道运行:
网址:
https://management.azure.com/subscriptions/@{pipeline().parameters.SubscriptionId}/resourceGroups/@{pipeline().parameters.ResourceGroupName}/providers/Microsoft.DataFactory/factories/@{pipeline().DataFactory}/queryPipelineRuns?api-version=2018-06-01
身体:
{
"lastUpdatedAfter": "2018-06-16T00:36:44.3345758Z",
"lastUpdatedBefore": "@{utcnow()}",
"filters": [
{
"operand": "PipelineName",
"operator": "Equals",
"values": [
"@{pipeline().parameters.PipelineName}"
]
},
{
"operand": "LatestOnly",
"operator": "Equals",
"values": [
true
]
}
]
}
要使用来自先前 Web 调用的管道详细信息获取活动输出:
网址:
https://management.azure.com/subscriptions/@{pipeline().parameters.SubscriptionId}/resourceGroups/@{pipeline().parameters.ResourceGroupName}/providers/Microsoft.DataFactory/factories/@{pipeline().DataFactory}/pipelineruns/@{activity('Get Last ChildPipeline Run Details').output.value[0].runId}/queryActivityruns?api-version=2018-06-01
身体:
{
"lastUpdatedAfter": "2018-06-16T00:36:44.3345758Z",
"lastUpdatedBefore": "@{utcnow()}",
"filters": [
{
"operand": "ActivityName",
"operator": "Equals",
"values": [
"@{pipeline().parameters.ActivityName}"
]
}
]
}
这是使用上面显示的过程在父管道中的成功输出:
推荐阅读
- powershell - 缺少容器 Cmdlet
- php - 谷歌 oauth2/日历 getRefreshToken 返回 NULL
- c - 执行for循环
- python - Jinja2 Django Python groupby('attribute') 自定义排序的石斑鱼
- python - 如何将 django 模型字段传递给函数并将变量返回到上下文以在模板中使用
- javascript - 该参数应作为 javascript 正文中的函数执行
- python - 如何在烧瓶中使用 Ajax 提供的数据?
- linux - 如何从 shell 中的三台机器中随机选择第一台机器?
- yii2 - 如何获取今天在 yii2 中创建的项目的数量?
- django - Django ajax重定向在同一个div中打开