問題描述
備份網站時由於檔案太大了,導致應用服務備份失敗。如何解決呢?
問題分析
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
檔案。 指定要在此檔案中排除的檔案和資料夾列表。詳見:https://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把檔案全部克隆到本地
- 在部署中心選擇local git 儲存,之後記錄一下git clone url
- 執行下面的命令 uri為git clone uri : git clone https://xxx.scm.chinacloudsites.cn:443/xxx.git
附錄一:使用命令【du -sh *】在kudu中檢視wwwroot資料夾下檔案的大小
附錄二:App Service登入Kudu站點的方式
- 登入進當前應用服務的kudu站點,入口URL為:https://<yoursitename>.scm.chinacloudsites.cn/
- 在門戶中登入Kudu站點(Azure門戶:App Service -> Development Tools -> Advanced Tools -> Go)
參考資料
在 Azure 中備份應用 : https://docs.azure.cn/zh-cn/app-service/manage-backup
從本地 Git 部署到 Azure 應用服務 : https://docs.azure.cn/zh-cn/app-service/deploy-local-git
使用 FTP/S 將應用部署到 Azure 應用服務 : https://docs.azure.cn/zh-cn/app-service/deploy-ftp