我们有一个部署到Azure的应用。它涉及部署多个具有Web角色和工作角色的云服务。一些工作者角色从队列中挑选项目并处理它们。我们还有一些定期运行的预定作业(备份Azure表存储等)。
每次部署时,我们都必须在门户中观察Staging环境并手动停止角色的启动。我们必须这样做,因为我们不希望Staging和Production插槽同时处理信息(例如,从同一队列拉出但以不同方式处理,或者同时运行相同的预定作业等)。 / p>
我发现部署进入暂停状态的暂存的唯一方法是让最后一次部署停止。对于这些情况,即使他们没有开始运营,您也需要付费。
那么,如何在不启动部署的情况下部署到Azure中的空暂存插槽?
编辑:我们通过Visual Studio或Visual Studio Online(即TFS)启动构建。不要经常使用powershell。
答案 0 :(得分:1)
无法创建部署但无法启动部署。您可以做的是在您的代码在OnStart期间读取的csdef / cscfg中有一个设置。
例如,您将拥有一个名为" ShouldRun"的设置。设为False。在OnStart中,如果ShouldRun == True,您将有一个循环检查该设置并退出循环。部署之后,只要您准备开始处理,就会转到门户网站并将该设置更改为True。一旦循环退出,OnStart方法将完成,这将导致Azure调用Run方法并使您的实例进入Ready状态。
此外,您可以添加Changed事件处理程序,以在设置更改为False时停止处理消息。这将允许您首先停止生产部署,然后开始暂存部署。
答案 1 :(得分:0)
对我来说,你需要将你的队列和配置分开。另一个选择是,您可以创建一个powershell脚本,以便在发布后停止您的云服务。