You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure中如何迁移多个App Service至其他订阅?移动操作失败该如何处理

Azure App Service跨订阅迁移指南

单个App Service跨订阅迁移步骤

  • 登录Azure门户,定位到目标App Service
  • 进入概述页面,点击顶部的移动 > 移动到另一个订阅
  • 按提示选择目标订阅与资源组,注意:App Service必须和所属的App Service计划处于同一订阅,要么将计划一并迁移,要么先在目标订阅创建匹配规格的计划
  • 核对迁移内容,勾选同意条款后完成操作

批量迁移实现方案

Azure门户的手动移动功能确实不支持批量选中多个App Service,可通过以下两种方式实现批量操作:

方式1:Azure PowerShell脚本

# 登录Azure账号
Connect-AzAccount

# 定义源/目标订阅、目标资源组信息
$sourceSubId = "源订阅ID"
$targetSubId = "目标订阅ID"
$targetResourceGroup = "目标资源组名称"

# 获取指定资源组下的所有App Service
$apps = Get-AzWebApp -ResourceGroupName "源资源组名称"

# 循环迁移每个App Service及关联计划
foreach ($app in $apps) {
    # 提取并获取关联的App Service计划
    $planName = $app.ServerFarmId.Split("/")[-1]
    $plan = Get-AzAppServicePlan -ResourceGroupName $app.ResourceGroupName -Name $planName
    
    # 若计划不在目标订阅,先迁移计划
    if ($plan.SubscriptionId -ne $targetSubId) {
        Move-AzResource -ResourceId $plan.Id -DestinationSubscriptionId $targetSubId -DestinationResourceGroupName $targetResourceGroup -Force
    }
    # 迁移App Service
    Move-AzResource -ResourceId $app.Id -DestinationSubscriptionId $targetSubId -DestinationResourceGroupName $targetResourceGroup -Force
}

方式2:Azure CLI脚本

# 登录Azure账号
az login

# 切换到源订阅上下文
az account set --subscription "源订阅ID"

# 获取指定资源组下所有App Service的ID
app_ids=$(az webapp list --resource-group "源资源组名称" --query "[].id" -o tsv)

# 循环迁移每个App Service及关联计划
for id in $app_ids; do
    # 提取关联的App Service计划ID
    plan_id=$(az webapp show --ids $id --query "serverFarmId" -o tsv)
    # 迁移计划(若不在目标订阅)
    az resource move --ids $plan_id --destination-subscription-id "目标订阅ID" --destination-resource-group "目标资源组名称"
    # 迁移App Service
    az resource move --ids $id --destination-subscription-id "目标订阅ID" --destination-resource-group "目标资源组名称"
done

注意:批量迁移时必须同步处理所有依赖资源(如App Service计划、关联存储账户等),否则会触发失败。

备份恢复方式实现跨订阅迁移

完全可以通过备份+恢复的方式完成跨订阅迁移,步骤如下:

  • 源App Service备份配置:
    1. 进入App Service的备份页面,点击配置
    2. 选择存储账户(可在源订阅,也可提前部署到目标订阅),设置备份频率与保留周期
    3. 手动触发一次即时备份
  • 目标订阅创建匹配资源:
    1. 创建与源App Service同规格的App Service计划
    2. 创建App Service,确保运行时版本、操作系统与源端一致
  • 恢复备份到目标App Service:
    1. 进入目标App Service的备份页面,点击恢复
    2. 选择源备份所在的存储账户(若存储在源订阅,需给目标App Service配置存储账户访问权限)
    3. 选中目标备份文件,确认设置后完成恢复
      该方式优势是无需处理复杂的资源依赖迁移,适合重构资源组结构的场景;缺点是需要额外存储成本,且需逐个操作(可结合脚本实现批量备份恢复)。

批量移动失败的常见原因

  • 依赖资源未同步迁移:App Service与所属计划分属不同订阅会导致迁移失败
  • 权限不足:操作账户需同时拥有源、目标订阅的参与者或移动资源权限
  • 资源锁定:源资源或目标资源组存在删除/只读锁,需先解除锁定
  • 配额限制:目标订阅的App Service计划配额(实例数、内存等)不足以容纳迁移的资源

内容的提问来源于stack exchange,提问作者Jagan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 17:27:50