无需启动角色即可部署到Azure

时间:2014-08-28 21:48:24

标签: azure deployment

我们有一个部署到Azure的应用。它涉及部署多个具有Web角色和工作角色的云服务。一些工作者角色从队列中挑选项目并处理它们。我们还有一些定期运行的预定作业(备份Azure表存储等)。

每次部署时,我们都必须在门户中观察Staging环境并手动停止角色的启动。我们必须这样做,因为我们不希望Staging和Production插槽同时处理信息(例如,从同一队列拉出但以不同方式处理,或者同时运行相同的预定作业等)。 / p>

我发现部署进入暂停状态的暂存的唯一方法是让最后一次部署停止。对于这些情况,即使他们没有开始运营,您也需要付费。

那么,如何在不启动部署的情况下部署到Azure中的空暂存插槽?

编辑:我们通过Visual Studio或Visual Studio Online(即TFS)启动构建。不要经常使用powershell。

2 个答案:

答案 0 :(得分:1)

无法创建部署但无法启动部署。您可以做的是在您的代码在OnStart期间读取的csdef / cscfg中有一个设置。

例如,您将拥有一个名为" ShouldRun"的设置。设为False。在OnStart中,如果ShouldRun == True,您将有一个循环检查该设置并退出循环。部署之后,只要您准备开始处理,就会转到门户网站并将该设置更改为True。一旦循环退出,OnStart方法将完成,这将导致Azure调用Run方法并使您的实例进入Ready状态。

此外,您可以添加Changed事件处理程序,以在设置更改为False时停止处理消息。这将允许您首先停止生产部署,然后开始暂存部署。

答案 1 :(得分:0)

对我来说,你需要将你的队列和配置分开。另一个选择是,您可以创建一个powershell脚本,以便在发布后停止您的云服务。

http://msdn.microsoft.com/en-us/library/dn495211.aspx