2014-12-05 3 views
0

Для моей системы у меня есть фоновый процесс, который использует сторонний инструмент командной строки для выполнения некоторых случайных операций. Этот инструмент записывает и считывает из файловой системы (я указываю его на некоторые файлы, он работает с его магией, а затем записывает результаты в другой файл).Azure Worker Role Calling 3rd Party Command Line Component

Это, очевидно, легко сделать с помощью Azure Virtual Machine. Просто напишите службу Windows для управления этим инструментом командной строки и прочитайте его из очереди, чтобы получить задания на обработку.

К этому моменту, однако, я смог сделать все в Azure, не прибегая к полномасштабной виртуальной машине. Мне нравится это. Мне нравится не беспокоиться о применении исправлений и другого обслуживания, простоев и т. П.

Итак, мой вопрос: есть ли что-то в Лазуре, которое позволит мне получить эту услугу, не прибегая к виртуальной машине? Может ли «рабочая роль» выполнить это? Может ли он читать и писать в/из файловой системы? Может ли он обрабатывать сторонние инструменты с кучей произвольных зависимостей? Могу ли я запустить другой процесс из кода C# в рабочей роли?

ответ

3

Может ли «рабочая роль» выполнить это?

Абсолютно! Помните, что рабочая роль также является полномасштабной виртуальной машиной (с той же ОС, что и Azure Virtual Machine).

Можно ли читать и записывать в/из файловой системы?

Да. Однако есть улов. Вы: может не может читать/писать в любое произвольное место на виртуальной машине. У вас будет полный доступ к специальной папке на этой виртуальной машине под названием Local Storage. Вы можете узнать больше об этом здесь: http://msdn.microsoft.com/en-us/library/azure/ee758708.aspx

Может ли он обрабатывать сторонние инструменты с кучей произвольных зависимостей?

Да, еще раз! Опять же, есть улов. Поскольку эти виртуальные машины являются виртуальными машинами без учета состояния, все, что вы устанавливаете после того, как VM заступило за вас, Microsoft не гарантируется там, если Microsoft решит снести эту виртуальную машину по каким-либо причинам. Если вам нужно установить какое-либо дополнительное программное обеспечение, вам необходимо будет установить их через процесс с именем Startup Tasks. Вы можете прочитать о них здесь: http://msdn.microsoft.com/en-us/library/azure/hh180155.aspx.

Можно ли запустить другой процесс из кода C# внутри рабочей роли?

Хотя я не пробовал это лично, но я думаю, что это возможно, потому что вы получаете виртуальную машину с последней версией Windows-сервера.

+0

Отличный и тщательный ответ! Спасибо, что так полно, Гаурав. –