Задания Powershell и Set-AzureRmRouteTable

Я получаю эту ошибку, когда я использую этот командлет в своем блоке скрипта

Cannot parse the request.
StatusCode: 400
ReasonPhrase: Bad Request
OperationID : '2410b534-3ab9-4c82-b0fa-233e5a36e795'
    + CategoryInfo          : CloseError: (:) [Set-AzureRmRouteTable], NetworkCloudException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Network.SetAzureRouteTableCommand
    + PSComputerName        : localhost

Не имеет смысла для меня. Каждый раз, когда я ищу эту ошибку, она ссылается на командлеты, связанные с сетью.

$addConfigBlock = {
    Param(
        $udr,
        $routeTableName,
        $routeTableRG
    )
    $routeTable = Get-AzureRmRouteTable -ResourceGroupName $routeTableRG -Name $routeTableName
    try{
        Add-AzureRmRouteConfig -RouteTable $routeTable `
                                -Name $udr.Name `
                                -AddressPrefix $udr.properties.addressPrefix `
                                -NextHopType $udr.properties.nextHopType |  `
        Set-AzureRmRouteTable | Out-Null
    }
    catch {            
        $ErrorMessage = $_.Exception.Message
            Write-Output "$ErrorMessage"
    }   
}


foreach( $routeTable in $routeTablesToUpdate){
    Write-Output "Updating routes in route table : $($routeTable.Name) ..."
    ForEach($udr in $udrGov){
        Start-Job -ScriptBlock $addConfigBlock -ArgumentList $udr, $routeTable.Name, $routeTable.ResourceGroupName    

    }
}

Некоторые из новых конфигураций добавлены в мою таблицу маршрутов, но некоторые ошибки с этой ошибкой.. Хм..

Новая ошибка -

A retryable error occurred.
StatusCode: 429
ReasonPhrase:
OperationID : '927995e6-da07-4f99-bbf3-6dd59e7c3183'
    + CategoryInfo          : CloseError: (:) [Set-AzureRmRouteTable], NetworkCloudException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Network.SetAzureRouteTableCommand
    + PSComputerName        : localhost

1 ответ

Решение

Я воспроизвел вашу проблему с помощью существующего имени маршрута, перед тем как выполнить команду, у меня есть маршрут с именем joyroute1 в таблице маршрутов.

Моя тестовая команда:

$routeTable = Get-AzureRmRouteTable -ResourceGroupName joywebapp -Name joyudr
        Add-AzureRmRouteConfig -RouteTable $routeTable `
                                -Name joyroute1 `
                                -AddressPrefix 10.1.0.0/18 `
                                -NextHopType VirtualNetworkGateway |  `
        Set-AzureRmRouteTable -Debug

Результат отладки:

Поэтому я думаю, что ваш сценарий использует конфликтные имена маршрутов, когда он использует несколько разных имен, он работает, это объясняет, почему некоторые из них работают, вы можете проверить это.

Другие вопросы по тегам