Azure logic apps LogicApps场景登录、下载、压缩

Azure logic apps LogicApps场景登录、下载、压缩,azure-logic-apps,Azure Logic Apps,我使用表单身份验证(用户名和密码)访问第三方网站。 登录后,我调用HTTP端点并在正文中接收XML。XML包含1000个XML元素。在每个元素中都有一个文本值,一个代码。 对于这些代码中的每一个,我都会进一步调用不同的HTTP端点。响应更多的是XML。 当收到所有1000个响应后,我想将所有XML响应作为文件添加到zip容器中,并使其可供下载 我想看看LogicApps如何尽快做到这一点 调用第一个HTTP端点(auth设置为基本auth,输入user/pass) 在调用的结果体上使用xpath

我使用表单身份验证(用户名和密码)访问第三方网站。 登录后,我调用HTTP端点并在正文中接收XML。XML包含1000个XML元素。在每个元素中都有一个文本值,一个代码。 对于这些代码中的每一个,我都会进一步调用不同的HTTP端点。响应更多的是XML。 当收到所有1000个响应后,我想将所有XML响应作为文件添加到zip容器中,并使其可供下载

我想看看LogicApps如何尽快做到这一点

  • 调用第一个HTTP端点(auth设置为基本auth,输入user/pass)
  • 在调用的结果体上使用
    xpath(xml(),'//elementNameHere')
    表达式获取返回值中包含代码的所有元素
  • Foreach超过此返回值,然后
  • 进行HTTP调用
  • 将结果附加到数组变量,或将concat on附加到字符串变量
  • 将此值提交到blob存储
  • 但是,因为您在foreach循环中弄乱了w/vars,所以必须按顺序执行(将foreach循环上的并发控制设置为“on”和“1”),否则可能会导致糟糕的结果

    我不知道如何在这里“压缩内容”,因此您可能必须将结果发送到Azure函数,该函数使用.Net zip库(或js zip库,无论您喜欢什么)来完成工作,并为您执行put-to-blob存储

    这在陆地上也会容易得多,如果你愿意的话,我鼓励你看看

    一个温和的替代方案,你可以考虑的是第3.2步,而不是将结果上传到一个BLB存储容器,然后通过一个Azure函数调用使整个容器可以下载,这将得到容器和拉链内容(或者容器的BLB存储URL已经为你做了这件事?不确定)

  • 调用第一个HTTP端点(auth设置为基本auth,输入user/pass)
  • 在调用的结果体上使用
    xpath(xml(),'//elementNameHere')
    表达式获取返回值中包含代码的所有元素
  • Foreach超过此返回值,然后
  • 进行HTTP调用
  • 将结果附加到数组变量,或将concat on附加到字符串变量
  • 将此值提交到blob存储
  • 但是,因为您在foreach循环中弄乱了w/vars,所以必须按顺序执行(将foreach循环上的并发控制设置为“on”和“1”),否则可能会导致糟糕的结果

    我不知道如何在这里“压缩内容”,因此您可能必须将结果发送到Azure函数,该函数使用.Net zip库(或js zip库,无论您喜欢什么)来完成工作,并为您执行put-to-blob存储

    这在陆地上也会容易得多,如果你愿意的话,我鼓励你看看


    一个温和的替代品,你可以考虑的是第3.2步,而不是将结果上传到一个BLB存储容器,然后通过一个Azure函数调用使整个容器可以下载,从而获得容器和拉链内容(或者容器的BLB存储URL已经为你这样做了吗?不确定)

    谢谢你这么说,但似乎每次只能进行一次HTTP调用。没有办法同时做更多的事情吗?我希望尽快做到这一点。您是否建议持久功能中的扇出/扇入模式非常适合这一点?是的,适用于DF。但是默认情况下,LA将并行化foreach循环,除非您启用了并发控制并将其设置为1,所以您应该看到并行执行……感谢您的支持,但似乎每次只调用一个HTTP。没有办法同时做更多的事情吗?我希望尽快做到这一点。您是否建议持久功能中的扇出/扇入模式非常适合这一点?是的,适用于DF。但是默认情况下,LA将并行化foreach循环,除非您启用了并发控制并将其设置为1,所以您应该看到并行执行。。。