LogicApps сценарий входа в систему, скачать, ZIP - PullRequest
0 голосов
/ 06 июня 2019

Я захожу на сторонний веб-сайт, используя формы аутентификации (имя пользователя и пароль). После входа в систему я вызываю конечную точку HTTP и получаю XML в теле. XML содержит 1000 XML-элементов. Внутри каждого элемента есть текстовое значение, код. Для каждого из этих кодов я делаю дополнительный вызов к другой конечной точке HTTP. Ответ более XML. Когда все 1000 ответов будут получены, я хотел бы добавить все XML-ответы в виде файлов в zip-контейнер и сделать его доступным для загрузки.

Я хотел бы посмотреть, как LogicApps может сделать это как можно быстрее.

1 Ответ

2 голосов
/ 07 июня 2019
  1. Выполните вызов первой конечной точки HTTP (для параметра auth установлено базовое значение auth с введенным пользователем / проходом)
  2. Используйте выражение xpath(xml(<body var here>), '//elementNameHere') в теле результата от вызова, чтобы получить всеэлементы возвращаемого значения, содержащие код
  3. Foreach над этим возвращаемым значением и
    1. заставляют HTTP-вызов
    2. добавить результат к переменной массива или concatв строковую переменную.
  4. Отправьте это значение в хранилище BLOB-объектов

Поскольку вы путаетесь с переменными в цикле foreach, выЯ буду вынужден делать это последовательно (установите управление параллелизмом в цикле Foreach на 'on' и '1'), иначе вы можете получить плохой результат.

Я не знаю, как "застегнуть"содержимое "здесь, так что вам, возможно, придется отправить результат в функцию Azure, которая использует .Net zip lib для выполнения работы (или js zip lib, независимо от вашего вкуса) и делает для вас хранилище BLOB-объектов.

Это также все будет намного легче в DurableФункции земля, я призываю вас обратить на это внимание, если вы так склонны.

Одна мягкая альтернатива, которую вы могли бы рассмотреть, - это шаг 3.2, вместо этого выгрузите этот результат в контейнер для хранения больших двоичных объектов, а затем сделайте весь контейнер доступным для загрузки с помощью вызова функции Azure, который получает контейнер и архивирует содержимое (или URL-адрес хранилища BLOB-объектов для контейнера уже делает это для вас? не уверен)

...