azure 从数据工厂管道返回值

mrphzbgm  于 2022-12-14  发布在  其他
关注(0)|答案(2)|浏览(185)

我需要从管道中获取一个返回值。
场景:我正在连接到一个API以获取数据。该API需要一个在数据管道开始时生成的令牌。令牌的生命周期很短,如果过期,则需要续订。
与其到处都有多个web活动来更新令牌,我只需要一个获取令牌并返回它的管道。管道可以在需要的地方被调用。由于获取令牌的web调用需要很多参数,如果我必须改变它,在一个地方改变它比在很多地方改变它更容易。
到目前为止,我还没有看到一种方法来做到这一点很容易在ADF使用参数或变量,并希望任何专业知识。
谢谢你!

dxxyhpgq

dxxyhpgq1#

正如@Joel Cochran在评论中提到的,目前管道不会返回任何输出,你可以从Azure数据工厂提出功能请求。
下面是可用于获取子管道输出的替代方法。

方法1:

您可以使用“执行管缐”活动从其他管缐呼叫您的管缐,但这不会传回子管缐的实际输出,而是传回子管缐RunId。
使用此pipelineRunID,您可以使用Web活动进行调用,以获取活动运行详细信息,这些详细信息包含响应主体中管道的实际输出。

范例:

1.使用Execute pipeline活动从父管道执行子管道以获取管道RunId。

1.使用web活动发出POST请求以获取活动运行,方法是在URL中向要包含在HTTP请求中的获取子管道RunId添加动态表达式。

网址:

@concat('https://management.azure.com/subscriptions/{your subscription ID}/resourceGroups/{your resource group name}/providers/Microsoft.DataFactory/factories/{your factory name}/pipelineruns/',string(activity('Execute Pipeline1').output.pipelineRunId),'/queryActivityruns?api-version=2018-06-01')

1.您可以在以后的活动中使用web活动响应主体的子管道输出。
@string(activity('Web1').output.value[0].output)

方法2:

您可以将输出存储在存储或数据库中,然后使用查找活动从另一个管道再次检索它。

dohp0rv5

dohp0rv52#

也可以设置全局变量。全局变量在“管理/全局参数”菜单中定义。

相关问题