Устранение ошибок регистрации поставщика ресурсов

В этой статье описываются ошибки, связанные с регистрацией поставщика ресурсов, которые могут возникнуть при использовании поставщика ресурсов, который вы еще не использовали в своей подписке Azure. Сообщения об ошибке отображаются при развертывании ресурсов с помощью файла Bicep или шаблона Azure Resource Manager (шаблона ARM). Если Azure не регистрирует поставщика ресурсов автоматически, вы можете сделать это вручную.

Симптом

При развертывании ресурса вы можете получить следующий код ошибки и сообщение об ошибке:

Code: NoRegisteredProviderFound
Message: No registered resource provider found for location {location}
and API version {api-version} for type {resource-type}.

Или может появиться похожее сообщение:

Code: MissingSubscriptionRegistration
Message: The subscription is not registered to use namespace {resource-provider-namespace}

В сообщении об ошибке должны быть указаны поддерживаемые расположения и версии API. Вы можете изменить шаблон, чтобы использовать одно из предложенных значений. Большинство поставщиков, но не все, регистрируются автоматически порталом Microsoft Azure или интерфейсом командной строки, который вы используете. Если ранее вы не использовали конкретный поставщик ресурсов, возможно, потребуется зарегистрировать такой поставщик.

Если автоматическое завершение работы виртуальной машины отключено, может отображаться сообщение об ошибке, аналогичное:

Code: AuthorizationFailed
Message: The client '<identifier>' with object id '<identifier>' does not have authorization to perform
action 'Microsoft.Compute/virtualMachines/read' over scope ...

Для поставщика ресурсов, который не имеет шаблона ARM или файла Bicep, может возникнуть непредвиденное сообщение об ошибке. Эта ошибка может возникнуть при развертывании ресурса, который создает другие вспомогательные ресурсы. Например, ресурс в шаблоне добавляет ресурсы для мониторинга и обеспечения безопасности. В сообщении об ошибке указывается, что необходимо зарегистрировать пространство имен поставщика ресурсов для вспомогательной службы.

Причина

Эти ошибки возникают по одной из следующих причин:

  • Для подписки не зарегистрирован необходимый поставщик ресурсов.
  • Версия API не поддерживается для выбранного типа ресурса.
  • Расположение не поддерживается для выбранного типа ресурса.
  • Для автоматического завершения работы виртуальной машины необходимо зарегистрировать Microsoft.DevTestLab поставщика ресурсов.

Решение

С помощью Azure CLI можно получить сведения о состоянии регистрации поставщика ресурсов и зарегистрировать его.

Чтобы просмотреть всех поставщиков ресурсов в Azure, а также состояние регистрации для подписки, используйте команду az provider list. В примерах параметр --output table используется для фильтрации результатов по читаемости. Вы можете опустить параметр, чтобы увидеть все свойства.

Следующая команда содержит список всех поставщиков ресурсов подписки, а также информацию о том, Registered они или NotRegistered.

az provider list --output table

Вы можете отфильтровать выходные данные по состояниям регистрации. Замените значение запроса на Registered или NotRegistered.

az provider list --query "[?registrationState=='Registered']" --output table

Получить состояние регистрации для определенного поставщика ресурсов:

az provider list --query "[?namespace=='Microsoft.Compute']" --output table

Чтобы зарегистрировать поставщика ресурсов, используйте команду az provider register и укажите пространство имен, которое следует зарегистрировать.

az provider register --namespace Microsoft.Cdn

Чтобы получить поддерживаемые расположения для типа ресурсов, используйте az provider show:

az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].locations"

Получите поддерживаемые версии API для типа ресурсов:

az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].apiVersions"