2014-08-28 53 views
1

我們有一個我們部署到Azure的應用程序。它涉及部署多種雲服務,並具有Web角色和工作者角色的組合。一些工作角色從隊列中挑選項目並處理它們。我們還有一些定期運行的計劃作業(備份Azure表格存儲等)。無需啓動角色即可部署到Azure

每次部署時,我們都必須在門戶中觀察登臺環境,並手動停止角色啓動。我們必須這樣做,因爲我們不希望分段和生產插槽同時處理信息(例如,從相同的隊列中拉出,但以不同的方式處理,或同時運行相同的預定作業等)。

我發現有一個部署進入分段處於停止狀態的唯一方法是讓最後一個部署停止。缺點是你要爲這些實例付費,即使它們沒有運行。

那麼,如何在不啓動部署的情況下部署到Azure中的空臨時插槽?

編輯:我們通過Visual Studio或Visual Studio Online(即TFS)啓動構建。通常不使用powershell。

回答

1

有沒有方法來創建一個部署,但沒有它啓動。你可以做的是在你的代碼將在OnStart中讀取的csdef/cscfg中有一個設置。

例如,您將設置名爲「ShouldRun」的設置爲False。在OnStart中,如果ShouldRun == True,您將有一個檢查該設置並退出循環的循環。部署完成後,您將進入門戶並在您準備好開始處理時將該設置更改爲True。一旦循環退出,OnStart方法將結束,這將導致Azure調用Run方法並將您的實例置於就緒狀態。

此外,您可以添加一個Changed事件處理程序,以在設置更改爲False時停止處理消息。這將使您可以先停止生產部署,然後開始暫存部署。

+1

「StartDeployment」參數如何:http://msdn.microsoft.com/ EN-US /庫/蔚藍/ ee460813.aspx?不知道在通過TFS部署代碼時它是如何工作的。 – 2014-08-29 04:30:09

+0

偉大的點Gaurav,我忘記了那個屬性。 – kwill 2014-08-29 14:58:36

0

對我來說,你需要分離出你的隊列和配置。另一種選擇是,您可以創建一個PowerShell腳本來發布後停止您的雲服務。

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

+0

要真正將Staging從生產中分離出來,您建議我們將存儲帳戶加倍?當我們需要數據堅持而不管部署如何(即我們需要生產中的任何東西指向特定的存儲帳戶)時也不起作用 – scottndecker 2014-08-28 22:32:15

相關問題