Ошибка ALTVNET020 при нагрузочном тестировании в Azure — как понять и исправить
Содержание показать/скрыть
Разбираем ошибку ALTVNET020 в Azure Load Testing: почему нагрузочный тест не разворачивается в виртуальной сети, как диагностировать проблему и что сделать, чтобы тест начал работать.
При попытке создать или запустить нагрузочный тест в Azure Load Testing в виртуальной сети (VNet) можно столкнуться с ошибкой ALTVNET020, при которой тест не разворачивается и не стартует. Эта ошибка возникает на этапе provisioning — развертывания тестовых виртуальных машин внутри сети.
Ошибка может появляться даже без явных изменений в ресурсах, особенно если более ранние тесты работали нормально.
Что означает ошибка ALTVNET020
Код ALTVNET020 связан с некорректной конфигурацией виртуальной сети (VNet), которая используется для развертывания инстансов нагрузочного теста. Эти тесты в Azure создают вспомогательные виртуальные машины engine instances, которые должны:
-
запускаться внутри указанной виртуальной сети;
-
иметь доступ к целевому приложению или API;
-
работать с ресурсами сети без блокировок.
Когда развертывание не удаётся, Azure выводит ошибку ALTVNET020, что указывает на проблемы именно на уровне VNet.
Основные причины ошибки
По практическим рекомендациям и документации, ошибка ALTVNET020 обычно связана с одним из следующих факторов:
Подсеть неготова (не в статусе Succeeded)
Если подсеть, которую вы указали для тестирования, ещё не завершила развертывание или находится в состоянии ошибки, Azure Load Testing не сможет размещать туда тестовые машины.
💡 Проверьте статус подсети через Azure CLI или портал и убедитесь, что она находится в состоянии Succeeded.
Проблемы в конфигурации виртуальной сети
Нагрузочное тестирование требует корректных настроек VNet:
-
подсеть должна существовать и иметь рабочую делегацию (если требуется);
-
в подсети должен быть достаточный диапазон IP-адресов;
-
NSG, таблицы маршрутов и другие сетевые компоненты должны быть в нормальном состоянии.
Если по ошибке выбран профиль подсети, зарезервированный под другие сервисы (например, AzureFirewallSubnet), тесты не запустятся.
Недостаточные права RBAC
Для развертывания ресурсов Load Testing в VNet у учетной записи должны быть соответствующие разрешения — как минимум роль Network Contributor или родительская роль. Без таких прав тест может провалиться на этапе provisioning.
Ограничения политики Azure
Некоторые политики безопасности или ограничения в подписке могут блокировать создание публичного IP, NSG или других компонентов, которые Load Testing пытается развернуть в сети. Это тоже может вызвать ALTVNET020.
Как исправить ошибку ALTVNET020
Ниже шаги, которые помогут устранить ошибку и успешно запустить нагрузочный тест:
1. Убедитесь, что подсеть в статусе Succeeded
Откройте портал Azure или выполните команду Azure CLI:
az network vnet subnet show \
-g <ResourceGroup> \
-n <SubnetName> \
--vnet-name <VNetName>
Проверьте поле provisioningState — оно должно быть Succeeded. В противном случае устраните проблемы и повторно дождитесь готовности подсети.
2. Выберите корректную подсеть
Если подсеть занята или делегирована другому сервису (например, Azure Firewall, App Service Environment или др.), вместо неё лучше выбрать другую, свободную подсеть.
3. Проверьте роли и доступы
Убедитесь, что у вашей учётной записи есть права на виртуальную сеть:
-
назначьте роль Network Contributor;
-
если нужно, добавьте также Load Testing Contributor;
-
проверьте, что ваша подписка не блокирует действия через Azure Policy.
4. Убедитесь в отсутствии ограничений на public IP и NSG
Load Testing развёртывает для теста:
-
Public IP адрес;
-
Network Security Group (NSG);
-
балансировщик нагрузки.
Если в подписке нет свободного quota на публичные IP или NSG находятся в состоянии ошибки, тест может провалиться. Проверьте соответствующие настройки через Azure Portal или Azure CLI.
5. Проверьте сетевые правила исходящего трафика
Для нагрузочных тестов требуется, чтобы подсеть могла осуществлять исходящие подключения к серверам Azure Load Testing и к целевому приложению. Ошибки в правилах NSG или пользовательских таблицах маршрутов (UDR) могут нарушить это.
Таблица: симптомы → причины → решение
| Симптом | Возможная причина | Рекомендация |
|---|---|---|
| ALTVNET020 при provisioning | Подсеть не готова | Дождаться статуса Succeeded |
| Ошибка развертывания теста | Неправильная подсеть | Выбрать другую или исправить настройки |
| Проблемы с доступом | Недостаточно ролей RBAC | Назначить Network Contributor |
| Ошибки NSG/UDR | Блокировка исходящего трафика | Откорректировать правила |
| Ошибка quota | Нет свободных IP | Увеличить quota/Public IP |
Частые вопросы (FAQ)
Можно ли тестировать приватные приложения?
Да — но потребуется корректно настроить виртуальную сеть и маршрутизацию, чтобы Load Testing мог развернуть свои engine-VM и получить доступ к целевому приложению.
Работает ли Load Testing вне виртуальной сети?
Да — для публичных конечных точек можно запускать тест без VNet, что упрощает конфигурацию.
Информация