只要您不需要管理员级别的访问权限(例如修改注册表、安装 msi 等),您就可以从 进行设置OnStart()
,包括启动您的脚本。只需将启动脚本包含在您的项目中(不要忘记将 Copy Local 设置为 true)。
启动脚本也是如此:你调用你的 cmd 文件,然后它会为你执行序列。如果你赋予它更高的权限,你可以运行安装程序、修改注册表设置、安装自定义性能计数器等等。
无论哪种情况:您可以将 apache zip、ruby 安装程序等保存在 blob 存储中,并在启动时将它们下载到本地存储。这使您免于在部署中捆绑所有内容,这为您带来了一些优势(能够在不重新部署的情况下更新 ruby / apache、减小包大小等)。
codeplex 上有一个示例应用程序,它演示了通过启动脚本设置 Tomcat 的基础知识。再举一个例子,您可以查看通过 Eclipse Windows Azure plugin for Java 安装的脚本。这些脚本非常相似。关键是有某种方法可以从 blob 存储中下载文件,然后解压缩它们。我提到的 codeplex 项目指向一个执行简单 blob 下载的示例应用程序。Eclipse 打包在 .vbs 应用程序中提供了类似的功能。这是我基于 Eclipse 的项目中的一个脚本的片段:
SET SERVER_DIR_NAME=apache-tomcat-7.0.25
SET WAR_NAME=myapp.war
rd "\%ROLENAME%"
mklink /D "\%ROLENAME%" "%ROLEROOT%\approot"
cd /d "\%ROLENAME%"
cscript /NoLogo util\unzip.vbs jre7.zip "%CD%"
cscript /NoLogo util\unzip.vbs tomcat7.zip "%CD%"
copy %WAR_NAME% "%SERVER_DIR_NAME%\webapps\%WAR_NAME%"
cd "%SERVER_DIR_NAME%\bin"
set JAVA_HOME=\%ROLENAME%\jre7
set PATH=%PATH%;%JAVA_HOME%\bin
cmd /c startup.bat
codeplex 项目有一个外观相似的脚本。
不要忘记:您需要为您的角色设置一个输入端点(角色属性的一部分)。
要将 blob 放入 blob 存储,有免费工具(如 Clumsy Leaf CloudXplorer)和付费工具(如 Cerebrata 的 Cloud Storage Studio)。
要将 blob 下载到本地存储,您可以编写几行 .net 代码(来自 OnStart),或者只使用 codeplex 项目中指向的实用程序。