ftp в хранилище Azure (инициированная обработка) - PullRequest
2 голосов
/ 19 апреля 2019

Я хочу перенести зашифрованные файлы из ftp server в `хранилище BLOB-объектов Azure

Вот рабочий процесс:

CSV зашифрованные файлы на Ftp-сервере----------> Trigger (пример: При добавлении файлов ) ----------> вызвать некоторые локальные программы или API, которые обрабатывают дешифрование, а затемсоздайте выходной файл csv в контейнере BLOB-объектов

файлы структурированы следующим образом:

   Input CSV file:
        column1;column2;column3;
        encryptedvalue1;encryptedvalue2;encryptedvalue3;

и

Output csv file:
    column1;column2;column3;
    value1;value2;value3;

Нет файлапреобразование контента здесь, но есть еще одна вещь, которую я не знаю, выполнимо ли это или нет:

Я хочу добавить новый BLOB-объект в определенную папку, в зависимости, например, от значения column1.(например, управлять иерархией контейнера BLOB-объектов из кода)

Я попытался создать Logic App и создал ftp trigger в качестве первого шага, но я не мог понять, что лучше всего подходит в качестве второго шага в моем случае,

Я видел много предложений, таких как использование веб-заданий, других для функций Azure и службы приложений Azure ...

И поскольку я немного знаком с этими структурами Azure, я пришел сюда, чтобы спросить олучший способ сделать это и почему?

Лучше использовать Web Job?или azure function?или просто сделать HttpRequest?и почему это так?

Я уже на правильном пути?logic app лучший способ, позволяющий мне это сделать?

Примечание: РЕДАКТИРОВАТЬ

размеры файлов составляют около нескольких МБ (не очень большие размеры) CSV файлы с ";"в качестве разделителя вводом является csv файл на FTP-сервере, а вывод - расшифрованный CSV-файл в определенной «папке» в хранилище BLOB-объектов Azure.

. Любая помощь приветствуется

Ответы [ 5 ]

0 голосов
/ 29 апреля 2019

После некоторых исследований, основанных на ответе evilSnobu и комментариях Johns-305, я понял, что лучший способ сделать это - выполнить ...

примечание: у меня есть Azure Api App, разработанный для расшифровки контента

Исходя из этой сетки, лучшим выбором здесь, очевидно, являются логические приложения для разработки моего рабочего процесса:

logic App vs MS Flow

Внутри моего приложения логики

  1. Создать триггер ftp: если files is added на ftp -> Create a blob в хранилище Azure & Delete file из ftp
  2. Создать Azure function

    (функция Azure против веб-заданий в сетке ниже)

    на основе blob creation trigger, когда создается BLOB-объект для приложения API расшифровки вызовов.

  3. Из соображений гранулярности и для того, чтобы сделать функцию лазури, сделайте только одну элементарную работу, я необходимо создать вторую функцию Azure для анализа файла и создание by version-folders в зависимости от version field содержимое файла

И на основе следующей таблицы мы можем сказать, почему функции Azure подходят лучше, чем веб-задания в моем случае

Azure functions vs Web jobs

Наконец, суммируя это, я могу сказать, что в моем случае мне нужно иметь представление разработчика о моих решениях, поэтому мне в основном нужно приложение логики, а затем мне нужно выполнить две элементарные задачи, которые запускают . базируется не непрерывно , поэтому лучше подходит для Azure Functions и намного дешевле (поскольку файлы не большие и обработка будет очень быстрой)

0 голосов
/ 29 апреля 2019

Я бы порекомендовал использовать (функция Azure) или (веб-задание)

. Вот два шаблона: - Использование Docker-контейнеров для выполнения преобразования (в данном случае - копирования): https://azure.microsoft.com/en-us/blog/microsoft-azure-block-blob-storage-backup/ -Использование функции для выполнения операции после события создания BLOB-объекта: https://cmatskas.com/copy-azure-blob-data-between-storage-accounts-using-functions/

Пожалуйста, дайте мне знать, если у вас есть какие-либо дополнительные вопросы.

0 голосов
/ 24 апреля 2019

Вы можете добиться этого с помощью приложения логики и приложения функций следующим образом:

  1. создать триггер ftp (когда файл прибудет)
  2. Если это простое Encode Decode, вы можете использоватьсоответствующую форму, или же вы можете создать одну функцию Azure в плане потребления (для определения цены в соответствии с использованием), которая имеет функции шифрования и дешифрования, где данные будут передаваться из формы триггера FTP.Для этого требуется кодирование, которое вы можете разработать с помощью VS Code или Visual studio.
  3. Затем вы можете выполнить синтаксический анализ из вывода функции Azure, используя синтаксический анализ, или вы можете использовать форму преобразования для ваших форматов данных (XML, JSON и т. Д.) Ивы можете снова использовать расшифровку, используя функцию Azure, которую вы написали выше, просто разными методами внутри одной и той же функции.
  4. Наконец, используйте форму Blob, чтобы передать вывод Decryption в контейнер хранения BLOB-объектов.

Приложения логики предоставляют вам широкое использование соединителей, облегчая подключение к различным артефактам и подход к рабочему процессу, вы также можете использовать преобразование с помощью XSLT, жидкое использование интеграционной учетной записи, если это необходимо.

Надеюсь, это поможет Cheers!!

0 голосов
/ 25 апреля 2019

Не переусердствуйте.

Используйте приложение логики для опроса FTP-сервера и обнаружения новых файлов, поместите их в хранилище BLOB-объектов.

Создайте функцию Azure, инициируемую BLOB-объектами (ПотреблениеПланируйте, v2 runtime) и выполняйте преобразование данных в коде (в v2 у вас есть выбор между TypeScript, JavaScript, C # и Python).Запишите результаты в хранилище BLOB-объектов с помощью выходной привязки BLOB-объекта.

ДОПОЛНИТЕЛЬНО У вас будет второй триггер приложения логики для полученных блобов и уведомления по электронной почте / тексту.

0 голосов
/ 22 апреля 2019

Существует несколько ключевых факторов, которые следует учитывать при выборе между веб-заданиями Azure и функцией Azure.

Функции Azure имеют два типа схем выставления счетов: План потребления и план обслуживания приложения.

При потреблении вы платите только за время, в течение которого работает ваша функция, однако, согласно плану потребления, ваша функция не может работать более 10 минут. Это означает, что если ваша работа выполняется более 10 минут, план потребления не для вас.

План обслуживания приложения - это тот же план, который используется веб-заданиями Azure, здесь нет ограничений по времени (согласно документации).

В общем, функции Azure хороши, когда вам нужна гибкая логика с различными триггерами и т. Д.

...