我成功地通过REST API将多个资源移动到其他资源组(使用this howto)但是当我尝试移动WebApp及其服务计划时失败了。我知道有limitations:我必须移动整个资源组,目标资源组不能包含WebApp。因此,我的目标资源组为空,而我的源资源组仅包含WebApp和服务计划。 正如howto中所建议的,我写了这个JSON:
{
"targetResourceGroup": "/subscriptions/Subscription-B/resourceGroups/newRG",
"resources": [
"/subscriptions/Subscription-A/resourceGroups/oldRG/providers/Microsoft.Web/serverFarms/test",
"/subscriptions/Subscription-A/resourceGroups/oldRG/providers/Microsoft.Web/sites/test"
]
}
并通过命令运行它:
armclient post https://management.azure.com/subscriptions/Subscription-A/resourceGroups/oldRG/moveResources?api-version=2015-01-01 @path/to/my/json -verbose
我得到" 202:接受"在命令窗口和门户网站中,我在两个资源组(oldRG和newRG)中看到信息文本"正在移动的资源"但过了一会儿,一切都没有改变。
编辑: 当我点击"删除"在oldRG中,我看到所有包含的资源:有4个alertrules,1个autoscalesetting和1个证书。 如限制中所述,我必须移动所有。但是我怎样才能访问这3种类型的资源?我没有他们的资源ID,因为我在搜索时找不到它们。
答案 0 :(得分:1)
证书资源ID如下所示:
/subscriptions/Subscription-A/resourceGroups/oldRG/providers/Microsoft.Web/certificates/<certificateThumbprint>
您无需传递自动缩放设置或警报规则。
答案 1 :(得分:0)
解决方案是Zain Rizvi的回答与此相结合:
我认为没关系,这就是为什么我告诉你这两个资源组的名称是oldRG
和newRG
- 但实际上它们具有相同的名称。那就是问题所在。即使它们处于不同的订阅中,我也无法将资源移动到与当前资源具有相同名称的资源组中。所以我在subscriptionB中创建了一个新的空资源组( tmpRG ),并将我的资源从 subscriptionA \ myRG 移到 subscriptionB \ tmpRG ,然后从 subscriptionB \ tmpRG 到 subscriptionB \ myRG 。