【发布时间】:2015-11-18 07:23:39
【问题描述】:
是否可以将 Azure 网站 移至不同的(或新的)应用服务计划?
我已经尝试过旧门户和新门户,但找不到适合的选项。
【问题讨论】:
标签: azure azure-web-app-service azure-app-service-plans azure-app-service-envrmnt
是否可以将 Azure 网站 移至不同的(或新的)应用服务计划?
我已经尝试过旧门户和新门户,但找不到适合的选项。
【问题讨论】:
标签: azure azure-web-app-service azure-app-service-plans azure-app-service-envrmnt
我需要在不同的订阅之间移动东西,根据文档,这很可能。很多都是从azure website 中无耻复制的。该解决方案利用了 Azure Powershell 1.0。
首先,如果您需要移动 Web 应用并且它已连接到 webfarm,则有一些 limitations:
您可以使用 ARM Move Resources Api 移动 Azure Web App 资源。
Azure Web Apps 当前支持以下移动场景:
- 将资源组的全部内容(Web 应用、应用服务计划和证书)移动到另一个资源组。
- 注意:在这种情况下,目标资源组不能包含任何 Microsoft.Web 资源
- 将单个 Web 应用程序移动到不同的资源组,同时仍将它们托管在其当前的应用程序服务计划(应用程序服务 计划保留在旧资源组中)
基本上你需要从你想要移动的资源中获取资源id并使用Move-AzureRmResource命令。您自然需要能够读取和写入所涉及订阅的 Azure 登录名。
$webapp = Get-AzureRmResource -ResourceGroupName OldGroup -ResourceName WebApp -ResourceType Microsoft.Web/sites
$plan = Get-AzureRmResource -ResourceGroupName OldGroup -ResourceName Plan -ResourceType Microsoft.Web/serverFarms
Move-AzureRmResource -DestinationResourceGroupName NewGroup -ResourceId ($webapp.ResourceId, $plan.ResourceId) -DestinationSubscriptionId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
我要指出,如果您要将资源转移到另一个订阅,则需要注意一些事项。首先,该订阅必须有权在该地区提供网站,其 API 超出此范围,但只需创建一个网站并将其删除即可赋予订阅这些权利。在我的情况下,我有第二个错误仍未解决,但我怀疑与正在移动的资源相关的其他资源是罪魁祸首。如果我解决了问题,将更新更多信息。
最后一点,也可以使用REST API。
【讨论】:
最初接受的答案已有一年多的历史。在 Azure 世界,那是永恒。 Azure 门户中的“更改应用计划”按钮不再出现(截至 2016 年 6 月 17 日),所以我输入了我需要使用的 Powershell 命令,以便将 Web 应用程序移动到另一个应用程序服务计划。
Set-AzureRmWebApp -Name <webapp name> -ResourceGroupName <resource group name> -AppServicePlan <new app service plan>
Set-AzureRmWebAppSlot -Name <webapp name> -Slot <slot name> -ResourceGroupName <resource group name> -AppServicePlan <new app service plan>
【讨论】: