【Azure】Web App 固定時間重新啟動

某站台三不五時就掛點,重開後一切恢復正常。

設定完 Auto Heal 還是沒有很好的解決。

老闆提出是否另外在設定額外的自動重開的需求。

參考來源 Azure App Services: Automate Application restart using Web Job

看到第一眼認定,這解答應該沒問題。

但,實際測試卻困難重重啊!

首先,請先安裝 Microsoft Azure PowerShell

我是透過 Microsoft Web Plateform Installer 安裝

安裝完以後,開啟Windows PowerShell ISE。

打入指令:

Login-AzureRmAccount
Save-AzureRmContext -Path "W:\azureprofile.json" 

請注意 原文中 Save-AzureProfile 指令,目前最新的版本已經不支援了,請改用 Save-AzureRmContext。

參考來源:What happened to Save-AzureRmProfile?

執行後,會跳出視窗進行Azure帳號密碼驗證。

驗證通過,會將資訊存在你的硬碟W槽中的azureprofile.json

再來,第二段指令如下:

$ProgressPreference= "SilentlyContinue"
Import-AzureRmContext -Path "azureprofile.json"
Select-AzureRmSubscription -SubscriptionId '目標Web App的訂閱帳號Id'
Stop-AzureRmWebApp -Name '目標Web App名稱' -ResourceGroupName '目標Web App資源群組名稱'
Start-AzureRmWebApp -Name '目標Web App名稱' -ResourceGroupName '目標Web App資源群組名稱'

原文中 Select-AzureRmProfile ,目前最新的版本已經不支援了,請改用 Import-AzureRmContext。

將檔案儲存為run.ps1。

請注意,如果你是在本機執行, azureprofile.json的路徑要改成W:\azureprofile.json ,否則會找不到檔案。

之後,開一個新的資料夾。

將azureprofile.json 和 run.ps1 放進去,並且壓縮成.zip檔。

在Azure Web App中建立Web Job。

不過,我失敗了。(目前找不到方式解決)

失敗訊息是:InvalidOperation: (:) [Stop-AzureRmWebApp], PSIn

下星期再發微軟支援解決了,有後續再更新。

暫時找台主機處理這件事情。