如何将Dedicated App Service Plan上的Azure Function App迁移至Premium Plan?
从专用应用服务计划迁移Azure函数应用至高级计划的可行方案
Azure官方确实不支持直接将托管在专用App Service Plan的Function App通过CLI或门户切换到弹性高级Premium Plan——这是因为两者底层运行架构不同(专用计划为固定实例,高级计划为弹性缩放实例),仅允许消费计划与高级计划之间互切。除完全重建Function App外,还有以下可行迁移方法:
方法1:通过ARM模板迁移
- 导出当前Function App的ARM模板:在Azure门户进入目标Function App的「自动化」>「导出模板」,勾选所有关联资源(如存储账户、应用洞察等)后下载模板与参数文件。
- 修改模板参数:打开参数文件,将
serverFarmId的值替换为已创建的目标Premium Plan的资源ID(可在Premium Plan的「属性」中复制)。 - 部署修改后的模板:使用Azure CLI执行
az deployment group create命令部署模板,部署前可通过az deployment group validate验证模板合法性。
方法2:利用备份恢复迁移
- 创建备份:在当前Function App的「备份」选项中,配置存储账户与容器,执行手动备份(确保包含应用设置、代码及所有配置)。
- 准备目标环境:创建好目标Premium Plan,按需准备对应存储账户。
- 恢复备份:在Azure门户创建新的Function App,选择目标Premium Plan,创建过程中选择「从备份恢复」并指定之前的备份文件完成恢复,后续仅需更新自定义域名、SSL证书等外部配置。
方法3:手动迁移配置与代码
- 部署代码:将当前Function App的代码通过Git、Zip部署或Azure DevOps流水线,部署到已创建的Premium Plan下的新Function App。
- 迁移配置:
- 通过
az functionapp config appsettings list命令导出当前应用的设置与连接字符串,再用az functionapp config appsettings set导入到新应用。 - 手动迁移触发器配置、自定义域名、SSL证书、VNet集成规则、应用洞察关联等资源。
- 通过
- 验证测试:启动新Function App,逐一测试所有函数的触发器与执行逻辑,确保与原应用一致。
注意事项
- 提前确认目标区域支持Premium Plan的定价层(EP1/EP2/EP3)。
- 迁移后检查存储账户访问权限,确保Function App可正常读写存储(Premium Plan支持标准存储账户)。
- 若使用VNet集成,需重新配置Premium Plan的VNet规则——专用计划与高级计划的VNet集成机制不同。
内容的提问来源于stack exchange,提问作者Philip Young
相关产品推荐
相关产品推荐

