Приложение Azure Logic, которое выполняет тяжелую обработку? - PullRequest
0 голосов
/ 01 декабря 2018

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

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

Я думаю, что до сих пор в базовой форме это:

  1. Приложение HTTP Trigger: это приложение логики получает ссылку на трехмерную сетку для обработки, затем оносохраняет эту сетку в хранилище Azure и передает эту ссылку в следующее приложение логики.
  2. Приложение процесса вычисления сетки: получает ссылку хранилища Azure на трехмерную сетку.Затем он запускает высокопроизводительный сервер с множеством процессоров и графических процессоров, высокопроизводительный сервер загружает сетку, обрабатывает сетку и затем загружает сетку обратно в хранилище Azure.Затем это приложение передает ссылку на обработанную сетку следующему приложению логики.Наконец, это отключает высокопроизводительный сервер, чтобы он не потреблял ресурсы без необходимости.
  3. Приложение уведомления по электронной почте: оно получает ссылку хранилища Azure на обработанную сетку, а затем отправляет электронное письмо со ссылкой для загрузки пользователю.

Возможно ли это?Пока то, что я прочитал, кажется возможным.Я просто хочу, чтобы кто-нибудь проверил это на случай, если я что-то не так понял.

Также я надеюсь получить небольшое руководство по механизму запуска и выключения высокопроизводительного сервера вMesh Computation Process App '.Единственное место, где документация Azure упоминает асинхронную долгосрочную обработку задач в приложениях логики, находится на этой странице: https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-create-api-app

В ней говорится о том, что вам необходимо запустить приложение API или веб-приложение для полученияЗапрос приложения Azure Logic, затем отправьте запрос статуса Azure Logic Apps.Мне было интересно, возможно ли сделать это без сервера?Таким образом, приложение Mesh Computation Process будет запускать функцию Azure, которая раскручивает сервер с более высокой производительностью, затем другая функция Azure периодически отправляет эхо-запрос на этот сервер, чтобы сообщить о состоянии до завершения, после чего функция Azure затем запускает сервер с более высокой производительностью длязавершите работу, а затем подайте в приложение «Процесс вычисления сетки», что оно завершено и оно переходит к следующему приложению логики.Можно ли сделать это таким образом?

Будем благодарны за любые комментарии или рекомендации о том, как лучше подходить к этому или думать об этомЭто первый раз, когда я копался в Azure, поэтому я одновременно пытаюсь ориентироваться на правильном понимании в Azure и создавать такую ​​систему.

1 Ответ

0 голосов
/ 06 декабря 2018

Должно быть возможно.На данный момент я не совсем уверен, могут ли сами приложения логики создать все эти вещи для вас, но это определенно можно сделать с помощью функций Azure без сервера.

Для вашего второго шага, если яправильно понимаете, вам нужно, чтобы он работал долго, просто чтобы он мог что-то передавать дальше, когда виртуальная машина готова?Тебе это не нужно.Находясь в режиме без сервера, старайтесь не думать о долго выполняющихся задачах и помните, что все является событием.

Помещение содержимого в хранилище BLOB-объектов Azure - это событие, на которое можно реагировать, это устраняет необходимость в связывании.

Ваш первый шаг - сохранение материалов в Azure Store, и все, больше ничего делать не нужно.

Ваше второе приложение запускает вставленный материал для запуска обработки.

Виртуальная машина обрабатывает ваш материал и помещает его в хранилище.

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

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

Если вам нужно какое-то управление / согласование состояний на всех ваших этапах, и вы все еще хотите быть без сервера, изучите надежные функции лазури.Они не содержат сервера, но действия, которые они выполняют, и результаты, которые они получают, хранятся в табличном хранилище, поэтому его можно воссоздать и восстановить до состояния, в котором он был раньше.Конечно, все делается для вас автоматически, это просто немного меняет то, что именно вы можете сделать внутри, чтобы быть прочным.Фактическое управление состоянием, которое вы, возможно, захотите сделать, может быть чем-то, чтобы отслеживать все виртуальные машины и пытаться использовать их повторно, вместо того, чтобы тратить время на их раскручивание и убийство.Но пока не усложняйте это слишком сильно.

https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview

Конечно, вам все еще нужно подумать об обработке ошибок, например, что произойдет, если ваша виртуальная машина просто умрет без загрузки чего-либо, выне хочу просто скучать по вещам.Таким образом, вы можете запускать специальные потоки для обработки повторов / ошибок, возможно отправлять разные электронные письма и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...