对于我的系统,我有一个后端进程,它使用第 3 方命令行工具来进行一些临时处理。该工具向文件系统写入和读取(我将其指向某些文件,它发挥其魔力,然后将结果写入另一个文件)。
使用 Azure 虚拟机显然很容易做到这一点。只需编写一个 Windows 服务来管理此命令行工具并从队列中读取它即可获取处理作业。
然而,到目前为止,我已经能够在 Azure 中完成所有操作,而无需求助于完整的虚拟机。我喜欢。我喜欢不必担心应用补丁和其他维护、停机等问题。
所以,我的问题是,Azure 中是否有某种功能可以让我无需借助虚拟机即可获得此服务? “ worker 角色”能够实现这一目标吗?它可以从文件系统读取和写入吗?它可以处理具有一堆任意依赖项的第三方工具吗?我可以在辅助角色中从 C# 代码启动另一个进程吗?
最佳答案
Would a "Worker Role" be able to accomplish this?
绝对是!请记住,辅助角色也是一个完整的 VM(具有为 Azure 虚拟机提供支持的相同操作系统)。
Can it read and write to/from the file system?
是的。然而有一个问题。您不能无法读取/写入虚拟机上的任意位置。您将拥有对该虚拟机上名为本地存储
的特殊文件夹的完全访问权限。您可以在这里阅读更多相关信息:http://msdn.microsoft.com/en-us/library/azure/ee758708.aspx
Can it handle 3rd party tools with a bunch of arbitrary dependencies?
是的,又来了!再说一遍,有一个问题。由于这些 VM 是无状态 VM,因此在 Microsoft 为您提供 VM 后安装的任何内容都不能保证存在,以防 Microsoft 出于任何原因决定拆除该 VM。如果您需要安装任何其他软件,则必须通过名为启动任务
的过程来安装它们。您可以在这里阅读有关它们的信息:http://msdn.microsoft.com/en-us/library/azure/hh180155.aspx .
Can I launch another process from C# code within the worker role?
虽然我没有亲自尝试过,但我认为这是可能的,因为您获得了运行最新版本的 Windows 服务器的虚拟机。
关于Azure辅助角色调用第3方命令行组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27321302/