【问题标题】:Getting Started with Azure: Worker RoleAzure 入门:辅助角色
【发布时间】:2012-06-13 00:40:47
【问题描述】:
我是 Azure 的新手。我有一个脚本可以自动安装 Apache、Ruby,并配置两者以运行基本的 Ruby on Rails 项目。此脚本当前在 Windows Server 上运行。
我现在正试图让这个在 Azure 中工作。我已注册订阅,并在 Visual Studio 中打开了一个新的 Worker Role 项目。
我现在有点卡住了。
1) 我应该将安装文件和项目文件(ruby、apache 等)放在哪里?
2) 放置脚本的最佳位置在哪里?
任何帮助将不胜感激。谢谢你的时间:)
【问题讨论】:
标签:
visual-studio-2010
azure
【解决方案1】:
在 Visual Studio 项目中,您可以在三个地方启动和运行:
- 启动脚本。这在您的 workerrole.cs 方法被调用之前运行。它非常适合安装需要提升权限的软件、调整注册表等。对于 apache,不需要提升权限 - 它只是 xcopy 加上环境变量。
- workerrole.cs OnStart() - 在将角色实例添加到负载均衡器之前调用此处理程序。您可以从 blob 存储下载 apache zip,解压缩到本地文件夹,然后启动它。
- workerrole.cs Run() - 与 OnStart() 相同,但您的角色实例现在位于负载均衡器中。我不建议在这里设置网络服务器。
从 Eclipse 设置 tomcat 时情况有些不同,因为没有 workerrole.cs。相反,您有一个启动脚本。 Eclipse 的 Windows Azure 插件提供了几个示例脚本:一个用于 tomcat,一个用于 JBoss,等等。然后您可以查看这些示例脚本如何设置环境并启动 Web 服务器。
一点指导:虽然您可以在您的部署中打包 tomcat、ruby 和其他运行时位,但这也会增加部署规模。我通常将第 3 方位放在 blob 存储中,然后在启动时将它们下载到我的角色实例中。此下载非常快。这也使我能够在不需要重新部署的情况下更新这些位(例如:自几个月前我推动部署以来,tomcat 已经经历了六次增量更新;我只是上传了一个新的 tomcat zip 并回收了我的角色实例)。