Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive gli errori di registrazione del provider di risorse che si verificano quando si usa un provider di risorse che non è già stato usato nella sottoscrizione di Azure. Gli errori vengono visualizzati quando si distribuiscono le risorse con un file Bicep o un modello di Azure Resource Manager (modello arm). Se Azure non registra automaticamente un provider di risorse, è possibile eseguire una registrazione manuale.
Sintomo
Quando viene distribuita una risorsa, è possibile che venga visualizzato il codice di errore e il messaggio seguenti:
Code: NoRegisteredProviderFound
Message: No registered resource provider found for location {location}
and API version {api-version} for type {resource-type}.
In alternativa, potrebbe essere visualizzato un messaggio simile che indica:
Code: MissingSubscriptionRegistration
Message: The subscription is not registered to use namespace {resource-provider-namespace}
Il messaggio di errore deve fornire suggerimenti per le posizioni supportate e le versioni delle API. È possibile modificare il modello in modo da usare un valore suggerito. La maggior parte dei provider viene registrata automaticamente dal portale di Microsoft Azure o dall'interfaccia della riga di comando, ma non tutti. Se in precedenza non è stato usato un provider di risorse specifico, potrebbe essere necessario registrare tale provider.
Quando l'arresto automatico della macchina virtuale è disabilitato, potrebbe essere visualizzato un messaggio di errore simile al seguente:
Code: AuthorizationFailed
Message: The client '<identifier>' with object id '<identifier>' does not have authorization to perform
action 'Microsoft.Compute/virtualMachines/read' over scope ...
Un errore imprevisto può verificarsi per un provider di risorse che non si trova nel modello di Resource Manager o nel file Bicep. Questo errore può verificarsi quando viene distribuita una risorsa che crea altre risorse di supporto. Ad esempio, la risorsa nel modello aggiunge risorse di monitoraggio o di sicurezza. Il messaggio di errore indica che lo spazio dei nomi del provider di risorse che è necessario registrare è per la risorsa di supporto tecnico.
Motivo
Questi errori vengono visualizzati per uno dei motivi seguenti:
- Il provider di risorse richiesto non è stato registrato per la sottoscrizione.
- Versione DELL'API non supportata per il tipo di risorsa.
- Località non supportata per il tipo di risorsa.
- Per l'arresto automatico della macchina virtuale, è necessario registrare il
Microsoft.DevTestLab
provider di risorse.
Soluzione
È possibile usare l'interfaccia della riga di comando di Azure per ottenere informazioni sullo stato di registrazione di un provider di risorse e registrare un provider di risorse.
Usare az provider list per visualizzare lo stato di registrazione per i provider di risorse della sottoscrizione. Negli esempi viene usato il --output table
parametro per filtrare l'output per ottenere la leggibilità. È possibile omettere il parametro per visualizzare tutte le proprietà.
Il comando seguente elenca tutti i provider di risorse della sottoscrizione e se sono Registered
o NotRegistered
.
az provider list --output table
È possibile filtrare l'output in base allo stato di registrazione. Sostituire il valore della query con Registered
o NotRegistered
.
az provider list --query "[?registrationState=='Registered']" --output table
Ottenere lo stato di registrazione per un provider di risorse specifico:
az provider list --query "[?namespace=='Microsoft.Compute']" --output table
Per registrare un provider di risorse, usare il comando az provider register e specificare lo spazio dei nomi da registrare.
az provider register --namespace Microsoft.Cdn
Per ottenere le posizioni supportate di un tipo di risorsa, usare az provider show:
az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].locations"
Ottenere le versioni API supportate di un tipo di risorsa:
az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].apiVersions"