Azure Data Factory V2动态内容

问题描述 投票:0回答:1

长话短说,我的数据转储对于azure函数而言太大。因此,我们正在使用数据工厂。我已分配了另一个函数来为API生成访问令牌并将其作为json的一部分输出。我想将该令牌设置为管道中的变量。到目前为止,我有这个:enter image description here

我正在尝试使用动态内容的“语言”来设置变量:

@activity('Get_Token').output

我想要类似pythons的东西:

token = data.get('data', {}).get('access_token', '')

作为第二个问题,我的下一步是在遍历另一个输出时使用此令牌来调用API,因此也许可以将这个确切的步骤添加到ForEach中?

azure azure-data-factory azure-data-factory-2
1个回答
0
投票

就像其他人指出的那样,看起来该变量应该为@activity('Get token').output.data.access_token,但是,正如您已经猜到的,如果只在foreach中需要它,则无需分配变量。您可以访问该后续活动的任何先前输出。这是在遍历另一个输出时使用令牌的方法:

  1. 假设您的函数也将listOfThings输出为数组在data键中。然后,您可以将foreach活动设置为遍历@activity('Get token').output.data.listOfThings
  2. 在foreach内部,您将拥有一个复制活动,例如REST数据集作为源。配置REST 链接服务使用匿名身份验证...
  3. ...然后您会发现一个名为AdditionalREST 数据集中的标题,您可以在其中创建密钥Authorization具有上述值,Basic @activity('Get token').output.data.access_token
  4. 您说过要迭代的内容(在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

© www.soinside.com 2019 - 2024. All rights reserved.