错误“无法修改此Web托管计划,因为正在进行其他操作”Azure Powershell

时间:2017-10-02 09:42:21

标签: azure azure-powershell

我们使用Powershell SDK将我们的基础架构编写为Azure中的代码。对于DEV实例,我们首先删除资源组,然后完全配置和重新部署我们的应用程序。

这样做我经常收到错误消息“无法修改此Web托管计划,因为正在进行另一项操作”。解决方法是在此命令后添加Sleep,然后希望它继续使用该脚本。

Get-AzureRmResourceGroup -Name $ResourceGroupName -ErrorVariable GetResourceGroupError -ErrorAction SilentlyContinue
if(!$GetResourceGroupError -and $PeformCleanDeployment)
{
    Write-Output "Removing resources group..."
    Remove-AzureRmResourceGroup -Name $ResourceGroupName -Force
    do
    {
        Write-Output "Waiting until resource group is deleted..."
        Get-AzureRmResourceGroup -Name $ResourceGroupName -ErrorVariable GetResourceGroupError -ErrorAction SilentlyContinue
        Start-Sleep 30
    } while (!$GetResourceGroupError)
}

但这不起作用。我仍然得到错误。

这样做的推荐方法是什么?有没有选项可以确保资源组真的消失了?

我的资源组包含一个webapp,serviceplan和一个postgres数据库。

我收到错误消息

Removing resources group...
True
Waiting until resource group is deleted...
Wait ----
Creating resources...
ResourceGroupName : ####################
Location          : westeurope
ProvisioningState : Succeeded
Tags              :
ResourceId        : ####################

New-AzureRmAppServicePlan : Cannot modify this web hosting plan because another operation is in progress. Details: Id:
########################, OperationName: Delete, CreatedTime: 10/4/2017 8:32:32 AM, RequestId:

干杯

1 个答案:

答案 0 :(得分:0)

  

这样做的推荐方法是什么?有没有办法确保   资源组真的不见了?

您可以使用Get-AzureRmResourceGroup来确定资源组是否存在。

Get-AzureRmResourceGroup -Name $rgname -ev notPresent -ea 0

If ($notPresent)
{
    Write-host "not exist"
}else
{
    Write-host "exist"
}

这是我的测试结果。

enter image description here

根据您的方案,如果存在资源组,则需要继续等待。

更新:我修改你的脚本如下:它适用于我。

Get-AzureRmResourceGroup -Name $myResourceGroup -ErrorVariable GetResourceGroupError -ErrorAction SilentlyContinue
if(!$GetResourceGroupError)


{
    Write-Output "Removing resources group..."
    Remove-AzureRmResourceGroup -Name $myResourceGroup -Force
    do
    {
        Write-Output "Waiting until resource group is deleted..."
        Get-AzureRmResourceGroup -Name $myResourceGroup -ErrorVariable GetResourceGroupError -ErrorAction SilentlyContinue
        "Wait ----"
        Start-Sleep 5

    } while (!$GetResourceGroupError)
}

您可以使用动态名称(随机名称)的另一种解决方案。