2014-12-05 80 views
0

對於我的系統,我有一個使用第三方命令行工具進行一些偶然處理的後端進程。該工具寫入文件系統並從文件系統讀取(我在某些文件中指向它,它起到了魔術作用,然後將結果寫出到另一個文件中)。Azure Worker角色調用第三方命令行組件

這對於Azure虛擬機來說顯然很容易。只需編寫一個Windows服務來管理此命令行工具,並從隊列中讀取它以獲取處理作業。

但是,到目前爲止,我已經能夠在Azure中完成所有工作,而無需訴諸完整的虛擬機。我喜歡。我喜歡不必擔心應用補丁和其他維護,停機時間等。

所以,我的問題是,有沒有什麼Azure可以讓我有這項服務,而不訴諸虛擬機? 「工人角色」是否能夠完成這一任務?它可以讀寫文件系統嗎?它可以處理與一堆任意依賴關係的第三方工具嗎?我可以從工作角色的C#代碼啓動另一個進程嗎?

回答

3

「工作者角色」是否能夠完成這項工作?

絕對!請記住,「工作者角色」也是一個完整的虛擬機(使用相同的操作系統爲Azure虛擬機供電)。

它可以讀寫文件系統嗎?

是。但有一個問題。您可以無法讀取/寫入虛擬機上的任何任意位置。您可以完全訪問該虛擬機上的一個名爲Local Storage的特殊文件夾。你可以閱讀更多關於它在這裏:http://msdn.microsoft.com/en-us/library/azure/ee758708.aspx

它可以處理的第三方工具與一羣任意的依賴關係?

是的,再次!再次,有一個問題。由於這些虛擬機是無狀態虛擬機,因此微軟爲虛擬機而爲您安裝的任何內容都不能保證在微軟決定以任何原因拆除該虛擬機時出現。如果您需要安裝任何附加軟件,則必須通過名爲Startup Tasks的進程安裝它們。你可以在這裏閱讀它們:http://msdn.microsoft.com/en-us/library/azure/hh180155.aspx

我可以從工作角色中的C#代碼啓動另一個進程嗎?

儘管我個人沒有嘗試過,但我認爲這是可能的,因爲你得到一臺虛擬機運行最新版本的Windows服務器。

+0

優秀徹底的答案!謝謝你如此完整,Gaurav。 – 2014-12-05 17:59:10