【Azure 應用服務】備份網站時由於文件太大了,導致應用服務備份失敗。如何解決?

問題描述

備份網站時由於文件太大了,導致應用服務備份失敗。如何解決呢? 

 

問題分析

App Service (應用服務)的備份功能有10GB大小的限制,超過了是無法備份成功的並且該限制是無法擴大的。查看微軟雲的官方網站,備份功能還有以下限制要求:

  • 備份和還原功能要求應用服務計劃處於標準層、高級層或隔離層 。 
  • 在與要備份的應用相同的訂閱中,需要有一個 Azure 存儲帳戶和容器。
  • 最多可備份 10 GB 的應用和資料庫內容。 如果備份大小超過此限制,會出錯。
  • 不支援備份啟用了 TLS 的 Azure Database for MySQL。 如果已配置備份,則會遇到備份失敗。
  • 不支援備份啟用了 TLS 的 Azure Database for PostgreSQL。 如果已配置備份,則會遇到備份失敗。
  • 應用內 MySQL 資料庫無需任何配置即可自動備份。 如果對應用內 MySQL 資料庫進行手動設置,例如添加連接字元串,則備份可能無法正常工作。
  • 不支援將啟用了防火牆的存儲帳戶用作備份目標。 如果已配置備份,則會遇到備份失敗。

 

解決辦法

核心思想就是避開10GB的限制,減少需要備份的文件。

 

一:配置App Service的部分備份或者時排除不需要備份的文件

在應用的 D:\home\site\wwwroot 文件夾中創建一個 _backup.filter 文件。 指定要在此文件中排除的文件和文件夾列表。詳見://docs.microsoft.com/zh-cn/azure/app-service/manage-backup#exclude-files-from-your-backup

 

二:手動下載文件到本地

1)如需要下載的文件過多,可以先通過tar命令進行壓縮後下載(可直接在kudu中,點擊文件右邊的下載圖標)

  • 壓縮當前目錄命令:tar -cf testappservice.tar . 

 

2) 使用FTP連接到App Service下載

參考官方文檔的「使用 FTP/S 將應用部署到 Azure 應用服務」,同樣的方式下載文件。

 

3)使用git  clone把文件全部克隆到本地

 

附錄一:使用命令【du -sh *】在kudu中查看wwwroot文件夾下文件的大小

附錄二:App Service登錄Kudu站點的方式

  • 登錄進當前應用服務的kudu站點,入口URL為://<yoursitename>.scm.chinacloudsites.cn/
  • 在門戶中登錄Kudu站點(Azure門戶:App Service -> Development Tools -> Advanced Tools -> Go

 

 

參考資料

在 Azure 中備份應用//docs.azure.cn/zh-cn/app-service/manage-backup

從本地 Git 部署到 Azure 應用服務//docs.azure.cn/zh-cn/app-service/deploy-local-git

使用 FTP/S 將應用部署到 Azure 應用服務//docs.azure.cn/zh-cn/app-service/deploy-ftp