长话短说,我的数据转储对于azure函数而言太大。因此,我们正在使用数据工厂。
我分配了另一个函数来为API生成访问令牌并将其作为json的一部分输出。我想将该令牌设置为管道中的变量。到目前为止,我有这个:
我正在尝试使用动态内容“语言”来设置变量:
@activity('Get_Token').output
我想要类似pythons的东西:
token = data.get('data', {}).get('access_token', '')
作为第二个问题,我的下一步是在遍历另一个输出时使用此令牌来调用API,因此也许可以将这个确切的步骤添加到ForEach中?
答案 0 :(得分:1)
就像其他人指出的那样,变量应该像@activity('Get token').output.data.access_token
一样,但是,正如您已经猜到的,如果只在foreach中需要变量,则无需分配变量。您可以访问该后续活动中的任何先前输出。下面是在迭代另一个输出时使用令牌的方法:
listOfThings
输出为数组
在data
键中。然后,您可以将foreach活动设置为
遍历@activity('Get token').output.data.listOfThings
。Authorization
值如上,Basic @activity('Get token').output.data.access_token
listOfThings
JSON数组中)可以在foreach活动中用引用
@item()
(或者,如果它是listOfThings中项目的成员
就会变成@item().myMember
)要让#4明确告知到达这里的其他人:
如果listOfThings看起来像这样,listOfThings: [ "thing1", "thing2", ...]
,例如filenames: ["file1.txt", "file2.txt", ...]
然后@item()
变成file1.txt
等。
而
如果listOfThings看起来像这样,listOfThings: [ {"key1":"value1", "key2":"value2" ... }, {"key1":"value1", "key2":"value2" ... }, ...]
。 filenames: [ {"folder":"folder1", "filename":"file1.txt"}, {"folder":"folder2", "filename":"file2.txt"}, ... ]
然后@item().filename
变成file1.txt
等。