【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