Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Catégories d’erreurs
La plupart des erreurs retournées par Azure CLI se trouvent dans l’une des catégories suivantes :
| Catégorie d’erreur | Cause d’erreur générale |
|---|---|
| Argument non reconnu | Un paramètre est mal orthographié ou n’existe pas. |
| Argument obligatoire manquant | Un paramètre obligatoire n’est pas spécifié ou un seul des deux « paires de paramètres » est spécifié. Un paramètre peut également être mal orthographié. |
| Argument mutuellement exclusif | Deux paramètres ou plus ne peuvent pas être spécifiés ensemble. |
| Valeur d’argument non valide | La valeur du paramètre |
| Demande incorrecte | Un code d’état HTTP de 400 retourne cette erreur. Recherchez un espace manquant, un tiret de paramètre manquant ou un guillemet simple ou double supplémentaire ou manquant. Cette erreur se produit également lorsqu’une valeur de paramètre ne contient pas de valeur autorisée. |
| Ressource introuvable | Une ressource Azure référencée dans une valeur de paramètre est introuvable. |
| Authentification | Échec de l’authentification Microsoft Entra. |
Paramètre de débogage
L’une des meilleures façons de voir ce qu’exécute Azure CLI pour chaque commande de référence consiste à utiliser le --debug paramètre. Voici des exemples de --debug d'une commande ayant échoué et d'une commande réussie :
# Error example: Create a resource group, but omit the quotes around the resource group name.
az group create --location eastus2 --name msdocs-rg-test --debug
Voici une partie de la sortie de débogage. Remarquez l’emplacement du journal et l’argument inconnu.
cli.knack.cli: Command arguments: ['group', 'create', '-l', 'eastus2', '-name', 'msdocs-rg-test', '--debug']
...
cli.azure.cli.core.azlogging: metadata file logging enabled - writing logs to '/home/myName/.azure/commands/YYYY-MM-DD.HH-MM-SS.group_create.8912.log'.
...
cli.azure.cli.core.azclierror: unrecognized arguments: msdocs-rg-test
...
Comparez la sortie d’erreur --debug donnée dans l’exemple précédent à une exécution réussie :
# Correct example: Because the resource group name contains special characters, enclose it in quotes
az group create --location eastus2 --name "msdocs-rg-test" --debug
Voici une partie de la sortie de débogage. Notez l’emplacement du journal, l’appel d’API et l’heure d’exécution.
cli.knack.cli: Command arguments: ['group', 'create', '-l', 'eastus2', '-n', 'msdocs-rg-test', '--debug']
...
cli.azure.cli.core.azlogging: metadata file logging enabled - writing logs to '/home/myName/.azure/commands/YYYY-MM-DD.HH-MM-SS.group_create.8912.log'.
...
cli.azure.cli.core.sdk.policies: Request URL: 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/msdocs-rg-test?api-version=YYYY-MM-DD'
cli.azure.cli.core.sdk.policies: Request method: 'PUT'
cli.azure.cli.core.sdk.policies: Request headers:
cli.azure.cli.core.sdk.policies: 'Content-Type': 'application/json'
cli.azure.cli.core.sdk.policies: 'Content-Length': '23'
cli.azure.cli.core.sdk.policies: 'Accept': 'application/json'
cli.azure.cli.core.sdk.policies: 'x-ms-client-request-id': 'ba7ee6f4-2dcc-11ef-81ce-00155dadc5c8'
cli.azure.cli.core.sdk.policies: 'CommandName': 'group create'
cli.azure.cli.core.sdk.policies: 'ParameterSetName': '-l -n --debug'
cli.azure.cli.core.sdk.policies: 'User-Agent': 'AZURECLI/2.61.0 (RPM) azsdk-python-core/1.28.0 Python/3.9.19 (Linux-5.10.102.2-microsoft-standard-x86_64-with-glibc2.35) cloud-shell/1.0'
cli.azure.cli.core.sdk.policies: 'Authorization': '*****'
cli.azure.cli.core.sdk.policies: Request body:
cli.azure.cli.core.sdk.policies: {"location": "eastus2"}
urllib3.connectionpool: Starting new HTTPS connection (1): management.azure.com:443
urllib3.connectionpool: https://management.azure.com:443 "PUT /subscriptions/3618afcd-ea52-4ceb-bb46-53bb962d4e0b/resourcegroups/msdocs-rg-test?api-version=2022-09-01 HTTP/1.1" 201 226
cli.azure.cli.core.sdk.policies: Response status: 201
...
cli.azure.cli.core.sdk.policies: 'Date': 'Tue, 18 Jun 2024 23:44:41 GMT'
cli.azure.cli.core.sdk.policies: Response content:
cli.azure.cli.core.sdk.policies: {"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/msdocs-rg-test","name":"msdocs-rg-test","type":"Microsoft.Resources/resourceGroups","location":"eastus2","properties":{"provisioningState":"Succeeded"}}
...
cli.__main__: Command ran in 1.829 seconds (init: 0.111, invoke: 1.718)
Pour des exemples de --debug pour la mise en forme JSON, consultez : différences de citation entre les langages de script - chaînes JSON.
Erreurs de syntaxe courantes
Bien que l’interface de ligne de commande Azure puisse s’exécuter dans Bash, PowerShell et l’invite de commandes Windows (cmd.exe), il existe des différences de syntaxe entre les langages de script. Les scripts Azure CLI contenant des guillemets simples, des guillemets doubles et des caractères d’échappement nécessitent souvent une modification lors de la copie entre les langues. Ce défi est le plus souvent révélé dans les valeurs de paramètre, en particulier dans ceux affectés au --query paramètre. Voici quelques messages d’erreur courants :
Demande incorrecte ... {quelque chose} n’est pas valide : cette erreur peut être causée par un espace, un guillemet simple ou double ou un manque de guillemets.
Jeton inattendu... : cette erreur est observée lorsqu’il y a un espace ou un guillemet supplémentaire.
Valeur jmespath_type non valide : l'erreur provient souvent de guillemets incorrects dans le paramètre
--query.La référence de variable n’est pas valide : cette erreur est reçue lorsqu’une chaîne n’est pas correctement mise en forme, souvent en raison de la concaténation ou d’un caractère d’échappement manquant.
Arguments non reconnus : cette erreur est souvent due à un caractère de continuation de ligne incorrect ou à un nom de paramètre mal orthographié.
Expression manquante après l’opérateur unaire : cette erreur s’affiche lorsqu’un caractère de continuation de ligne est manquant.
Il existe plusieurs articles Azure CLI dédiés à l’explication des erreurs de syntaxe et à la fourniture d’exemples de travail :
- Citer les différences entre les langages de script
- des différences de syntaxe dans le didacticiel Bash, PowerShell et Cmd
- Trouvez de nombreux exemples de paramètres
--querydans , comment interroger la sortie de commande Azure CLI à l'aide d'une requête JMESPath. - Guide pratique pour utiliser Azure CLI dans un langage de script Bash
- Considérations relatives à l’exécution d’Azure CLI dans un langage de script PowerShell
Conseil / Astuce
Si vous ne pouvez pas résoudre une erreur de commande, essayez d’utiliser un autre langage de script. La plupart de la documentation Azure CLI est écrite et testée dans Azure Cloud Shell, qui utilise le langage de script Bash. Si vous pouvez obtenir un exemple d’article à exécuter dans Bash, mais qu’il ne s’exécute pas dans PowerShell, passez en revue l’utilisation de guillemets simples et doubles et les caractères d’échappement.
Résolution des problèmes d’authentification multifacteur (MFA)
Échecs de connexion interactifs
Si vous rencontrez des erreurs lors de l’exécution de commandes Azure CLI qui créent, modifient ou suppriment des ressources, le problème peut être dû à une stratégie d’accès conditionnel Microsoft Entra ID qui nécessite une authentification multifacteur (MFA).
Ces erreurs se produisent généralement lorsque l’authentification multifacteur est requise par la stratégie, mais qu’elle n’est pas appliquée lors de la connexion.
La ressource a été refusée par la politique
Vous pouvez voir l’une des erreurs suivantes lors de l’utilisation :
- Azure CLI version 2.75.0 ou antérieure
Due to a configuration change made by your administrator, or because you moved to a new location,
you must enroll in multi-factor authentication. Interactive authentication is needed.
Ou:
Resource was disallowed by policy. Reasons: MFA is required. See error details for policy resource
IDs. RequestDisallowedByPolicy Message: Resource policy resource IDs was disallowed by policy.
Reasons: MFA is required.
Ou:
Unauthorized. RequestDisallowedByPolicy. Resource was disallowed by policy. Reasons: MFA is
required. See error details for policy resource IDs. MFA is required. Users must authenticate with
multi-factor authentication to create or update resources.
Effectuez une mise à niveau vers les versions suivantes ou une version ultérieure pour recevoir des messages d’erreur plus informatifs et des détails de stratégie :
- Azure CLI version 2.76.0 ou ultérieure
L’erreur suivante se produit dans Azure CLI 2.76.0+, où l’authentification multifacteur est requise par l’accès conditionnel pour des opérations spécifiques.
Run the command below to authenticate interactively; additional arguments may be added as needed:
az logout
az login --tenant "aaaabbbb-0000-cccc-1111-dddd2222eeee" --scope "https://management.core.windows.net//.default" --claims-challenge "<claims-challenge-token>"
(RequestDisallowedByPolicy) Resource was disallowed by policy. Policy identifiers. Users must use
MFA for Create/Update operations. Users must authenticate with multi-factor authentication to create
or update resources. Users must use MFA for Create operation. Users must authenticate with
multi-factor authentication to create or update resources. Users must use MFA for Create/Update
operations. Users must authenticate with multi-factor authentication to create or update resources.
Users must use MFA for Create operation. Users must authenticate with multi-factor authentication to
create or update resources.
Options de résolution
Demandez à votre administrateur Azure d’appliquer l’authentification multifacteur lors de la connexion. Cela permet à votre session de répondre aux exigences d’accès conditionnel sans étapes supplémentaires.
Si l’application de l’authentification multifacteur lors de la connexion n’est pas possible, utilisez le
--claims-challengeparamètre pour s’authentifier de manière interactive :az logout az login --tenant "aaaabbbb-0000-cccc-1111-dddd2222eeee" --scope "https://management.core.windows.net//.default" --claims-challenge "<claims-challenge-token>"
Pour plus d’informations, consultez Planification de l’authentification multifacteur obligatoire pour Azure et d’autres portails d’administration
Échec de la charge DLL lors de l’importation de win32file
Vous pouvez rencontrer l’erreur suivante lors de la tentative d’utilisation d’Azure CLI :
DLL load failed while importing win32file: The specified module could not be found.
The command failed with an unexpected error. Here is the traceback:
DLL load failed while importing win32file: The specified module could not be found.
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/__main__.py", line 13, in <module>
File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/telemetry.py", line 19, in <module>
File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/telemetry/__init__.py", line 9, in <module>
File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\portalocker/__init__.py", line 4, in <module>
File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\portalocker/portalocker.py", line 11, in <module>
ImportError: DLL load failed while importing win32file: The specified module could not be found.
PS C:\Users\dsevilla>
Ce problème peut se produire en raison d’une installation endommagée. Pour résoudre le problème :
- Désinstallez Azure CLI.
- Réinstallez Azure CLI à l’aide de votre méthode d’installation préférée.
Pour plus d’informations, consultez le problème GitHub #32045.
Erreur : valeur non valide ou n’existe pas
Ces erreurs se produisent souvent lorsque vous essayez d’utiliser des valeurs de variable qui contiennent un format incorrect. La sortie par défaut pour Azure CLI est JSON. Si vous essayez de stocker un ID pour une ressource Azure dans une variable, vous devez spécifier --output tsv. Voici un exemple :
# Get a subscription that contains a name or phrase
subscriptionID=$(az account list --query "[?contains(name,'my case sensitive search phrase')].id")
echo $subscriptionID
# output as JSON
[ "00000000-0000-0000-0000-000000000000" ]
# Try to set your subscription to the new ID
az account set --subscription $subscriptionID
# error output
The subscription of '"00000000-0000-0000-0000-000000000000"' doesn't exist in cloud 'AzureCloud'.
Utilisez maintenant le type de sortie tsv.
# Get the active subscription
subscriptionID=$(az account list --query "[?contains(name,'my case sensitive search phrase')].id" --output tsv)
echo $subscriptionID
# output as TSV
00000000-0000-0000-0000-000000000000
# Successfully set your subscription to the new ID
az account set --subscription $subscriptionID
Erreur : les arguments sont attendus ou obligatoires
Vous recevez cette erreur lorsqu’une commande Azure CLI manque un paramètre requis ou qu’une erreur typographique provoque l’analyse incorrecte de la commande de référence par Azure CLI. Lorsque vous utilisez un script, vous recevez également cette erreur quand une ou plusieurs conditions sont remplies :
- Un caractère de continuation de ligne est manquant ou incorrect.
- Un espace de fin existe sur le côté droit d’un caractère de continuation de ligne lors de l’utilisation du langage de script PowerShell. Le splatting PowerShell est uniquement pris en charge avec des tableaux et non avec des tables de hachage lors de l'utilisation des commandes Azure CLI.
- Un nom de variable contient un caractère spécial, tel qu’un tiret (-).
Erreur : Ressource introuvable
Lorsque l’interface de ligne de commande Azure ne trouve pas le nom de la ressource ou l’ID passé dans une valeur de paramètre, elle est généralement due à l’une de ces raisons :
- Le nom ou l’ID de la ressource est orthographié de manière incorrecte.
- Le nom de la ressource contient des caractères spéciaux et n’est pas entouré de guillemets simples ou doubles.
- La valeur passée à une variable a des espaces de début ou de fin invisibles.
- La ressource existe, mais se trouve dans un autre abonnement.
Erreur : Échec de l’analyse de la chaîne au format JSON
Il existe des différences entre Bash, PowerShell sous Linux et PowerShell sous Windows.
En outre, différentes versions de PowerShell peuvent produire des résultats différents. Pour les paramètres complexes, tels qu’une chaîne JSON, la meilleure pratique consiste à utiliser la convention d’Azure @<file> CLI pour contourner l’interprétation de l’interpréteur de commandes. Pour plus d’informations, consultez l’un des articles suivants :
Pour obtenir des exemples de syntaxe JSON pour Bash, PowerShell et cmd.exe, consultez le didacticiel Différences de citation entre les langages de script - chaînes JSON.
Erreur : DéploiementDeModèleInvalide
Lorsque vous essayez de créer une ressource Azure dans un emplacement qui n’offre pas cette ressource, vous recevez une erreur similaire à ce message : « Les références SKU suivantes ont échoué pour les restrictions de capacité : myDesiredSkuName » n’est actuellement pas disponible à l’emplacement « mySpecifiedLocation ».
Voici un exemple d’erreur complet pour une machine virtuelle qui ne peut pas être créée à l’emplacement westus :
{"error":{"code":"InvalidTemplateDeployment","message":"The template deployment 'vm_deploy_<32 character ID>'
is not valid according to the validation procedure. The tracking id is '<36 character ID>'.
See inner errors for details.","details":[{"code":"SkuNotAvailable","message":"The requested VM size for resource
'Following SKUs have failed for Capacity Restrictions: Standard_DS1_v2' is currently not available
in location 'westus'. Please try another size or deploy to a different location
or different zone. See https://aka.ms/azureskunotavailable for details."}]}}
La solution consiste à modifier une propriété de votre ressource Azure demandée ou à essayer un autre emplacement.
Erreur : Abonnement introuvable
En supposant que vous n’avez pas tapé le nom ou l’ID de l’abonnement de manière incorrecte, cette erreur se produit lorsqu’un fournisseur de ressources n’est pas inscrit dans l’abonnement actif. Par exemple, si vous souhaitez exécuter az storage account create, le Microsoft.Storage fournisseur doit être inscrit. Pour inscrire un fournisseur de ressources, consultez fournisseurs et types de ressources Azure.
Erreur : Échec de la vérification du certificat de négociation incorrecte
Consultez Travailler derrière un proxy pour plus d’informations sur la résolution de cette erreur.
Travailler derrière un proxy
Si vous utilisez Azure CLI sur un serveur proxy qui utilise des certificats auto-signés, la bibliothèque de requêtes Python utilisée par Azure CLI peut entraîner l’erreur suivante : SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",)
Pour résoudre cette erreur, définissez la variable d’environnement REQUESTS_CA_BUNDLE sur le chemin du fichier de certificat d'autorité de certification au format PEM.
| Système d'exploitation | Bundle d’autorité de certification par défaut |
|---|---|
| Windows 32 bits | C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem |
| Windows 64 bits | C:\Program Files\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem |
| Ubuntu/Debian Linux | /opt/az/lib/python<version>/site-packages/certifi/cacert.pem |
| CentOS Stream/RHEL/SUSE Linux | /usr/lib64/az/lib/python<version>/site-packages/certifi/cacert.pem |
| macOS | Modèles Intel : /usr/local/Cellar/azure-cli/<cliversion>/libexec/lib/python<version>/site-packages/certifi/cacert.pem Modèles en silicium : /opt/homebrew/Cellar/azure-cli/<cliversion>/libexec/lib/python<version>/site-packages/certifi/cacert.pem |
Ajoutez le certificat du serveur proxy au fichier de certificat du groupe d’autorité de certification ou copiez le contenu dans un autre fichier de certificat. Ensuite, définissez REQUESTS_CA_BUNDLE le nouvel emplacement du fichier. Voici un exemple :
<Original cacert.pem>
-----BEGIN CERTIFICATE-----
<Your proxy's certificate here>
-----END CERTIFICATE-----
Certains proxys nécessitent une authentification. Le format des variables d’environnement HTTP_PROXY ou HTTPS_PROXY doit inclure l’authentification, par exemple HTTPS_PROXY="https://username:password@proxy-server:port". Pour plus d’informations, consultez Comment configurer des proxys pour le Kit de développement logiciel (SDK) Azure pour Python.
Principaux de service
Pour plus d’informations sur la résolution des problèmes des principaux de service, consultez le didacticiel Nettoyage et résolution des problèmes dans le didacticiel Travail avec les principaux de service .
Autres problèmes
Si vous rencontrez un problème de produit avec Azure CLI non répertorié dans cet article, déposez un problème sur GitHub.