Поделиться через


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

В этой статье описываются ошибки регистрации поставщика ресурсов, которые возникают при использовании поставщика ресурсов, который еще не использовался в подписке 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 можно получить сведения о состоянии регистрации поставщика ресурсов и зарегистрировать его поставщика.

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

Следующая команда перечисляет всех поставщиков ресурсов подписки, а также то, являются RegisteredNotRegisteredли они .

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"