2016-12-07 80 views
1

在VSO中發佈構建時,我想將其發佈到Web應用程序的臨時插槽中。我正在使用NewRelic,因此我必須在部署之前停止登臺環境並將AlwaysOn選項設置爲false,然後將其置於開始並在部署之後啓動。如何在Visual Studio Online中持續集成來更新Azure webApp插槽配置?

這是我使用Azure的CLI任務部署任務前做:

call azure webapp config set --slot staging Default-Web-WestEurope instanceName --alwayson false 
call azure webapp stop --slot staging Default-Web-WestEurope instanceName 

它工作得很好,當我啓動我自己的桌面上,在Azure上CLI這些命令。但是,當我將此腳本放在VSO上的Azure CLI Task上時,它可以工作... ,但在生產插槽上。

這是非常惱人的,因爲它把生產放下。

您是否知道如何更新WebApp 插槽在VSO中的配置持續集成?

+0

所以你說的azure cli命令在代理上運行時並不考慮slot參數? –

+0

你有沒有試過這個https://www.visualstudio.com/en-us/docs/release/examples/azure/deployment-slots-webapps – forester123

+0

@ChrisPatterson是的我猜這是一個巨大的bug,但它是在預覽中。 .. – Raph

回答

1

根據您的描述,我在我身邊進行了測試,我可以重現此問題。您可以按如下方式添加-vv選項以查看更詳細的輸出。

azure webapp stop --slot <slot name> <resource-group-name> <your-webapp-name> -vv

這裏是我的VSO Azure的CLI任務的生成日誌:

注:由於Azure的CLI任務預覽。有關解決方法,你可以利用Azure Powershell任務停止/啓動你的web應用程序插槽,並配置AlwaysOn的選項如下步驟:

1.添加AZURE Powsershell任務

2 。添加下面的PowerShell腳本並將其推送到您的源代碼庫

1)停止網絡應用程序插槽使用Stop-AzureRmWebAppSlot

stop-azurermwebappslot -name "<webapp-name>" -slot "<webapp-slot-name>" -resourcegroupname "<resourcegroup-name>"

2)使用Set-AzureRmResource

Set-AzureRmResource -resourcename "<webapp-name>\slots\<webapp-slot-name>/web" -ResourceGroupName "<resourcegroup-name>" -ResourceType "Microsoft.Web/sites/config" -ApiVersion 2015-08-01 -propertyobject @{alwaysOn = $false;} -v -force

3.配置你的任務配置AlwaysOn

然後,我們可以看到下面的生成日誌:

此外,我發現有關於選項停止/啓動Web應用程序Azure的Web應用程序部署在一個類似issue,你可以參考一下吧。

+0

謝謝!我將按照您的步驟使用Azure Powershell任務。您能否向VSO團隊報告此Azure CLI預覽錯誤?我試過但沒有答案:https://connect.microsoft.com/VisualStudio/feedback/details/3113958/azure-cli-task-stop-azure-production-slot – Raph

+0

我已經確認與VSO團隊成員的這個問題。他建議你可以在github上報告有關[Microsoft/vsts-tasks issues](https://github.com/Microsoft/vsts-tasks/issues)的問題以獲得快速響應。 –

相關問題