长话短说,我的数据转储对于azure函数而言太大。因此,我们正在使用数据工厂。我已分配了另一个函数来为API生成访问令牌并将其作为json的一部分输出。我想将该令牌设置为管道中的变量。到目前为止,我有这个:
我正在尝试使用动态内容的“语言”来设置变量:
@activity('Get_Token').output
我想要类似pythons的东西:
token = data.get('data', {}).get('access_token', '')
作为第二个问题,我的下一步是在遍历另一个输出时使用此令牌来调用API,因此也许可以将这个确切的步骤添加到ForEach中?
就像其他人指出的那样,看起来该变量应该为@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
等
whereas
如果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
等