還原誤刪除的 App Service

  • 68
  • 0

實務上偶爾會發生管理資源的時候一不小心就刪除錯資源的慘劇,部分 Azure 服務是可以自助還原的,不需要再開 Ticket 請微軟 Support 協助,比如說儲存體帳戶,針對 Blob 有虛刪除功能,針對儲存體帳戶層級也有還原刪除的儲存體帳戶的功能,而針對今天要討論的主角 App Service,雖然在 Azure Portal 上面並沒有 UI 可以方便視覺化的操作,但是還是可以透過 PowerShell 指令來還原。 

前言

實務上偶爾會發生管理資源的時候一不小心就刪除錯資源的慘劇,部分 Azure 服務是可以自助還原的,不需要再開 Ticket 請微軟 Support 協助,比如說儲存體帳戶,針對 Blob 有虛刪除功能,針對儲存體帳戶層級也有還原刪除的儲存體帳戶的功能,而針對今天要討論的主角 App Service,雖然在 Azure Portal 上面並沒有 UI 可以方便視覺化的操作,但是還是可以透過 PowerShell 指令來還原。 

實做

根據官方文件說明可以還原的 App Service 有以下的限制,一個超過 30 天就會被系統真的清除而無法還原,第二個則是使用量方案,通常是用在 Azure Functions,所以也沒有辦法還原 Azure Functions ,最後就是 ASE 不支援還原。

如果還有記得誤刪除的 App Service 的名稱和資源群組的話,就可以直接進行還原,如果不確定的話需要先執行 Get-AzDeletedWebApp 來取得已刪除的 App Service 相關資訊。

再來就是執行還原的語法,然後等一下就會還原站台了。

Restore-AzDeletedWebApp -ResourceGroupName {ResourceGroupName} -Name {AppServiceName} -TargetAppServicePlanName {TargetAppServicePlanName}

結論

並非所有 Azure 資源都可以有對應功能或指令可以方便還原,有些服務可能開微軟 Support 也不保證可以舊的回來,那要怎麼避免誤刪或是被惡意刪除的情形,有底下幾點建議:

  1. 針對管理帳號不要每個帳號都設定成訂閱的擁有者,僅針對該帳號可以管理的服務或是資源群組做權限指派就好,避免權限過大。
  2. 針對服務開啟鎖定功能,並且設定避免刪除,設定上可以從訂閱曾即到單一資源都可以,可以針對 Production 環境的資源特別設定。
  3. 開啟服務的備份功能或是定價層。部分 Azure 服務是有內建備份或是支援備份的功能,比如說 VM、 SQL Database、App Service 等服務,多花一點成本做好備份,也可以避免誤刪之後無法還原的慘劇發生。

參考資料