Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Sortie d'erreur structurée dans AWS CLI
Cette rubrique décrit les formats de sortie d'erreur structurés pour le AWS Command Line Interface (AWS CLI). La CLI écrit les erreurs dans stderr et prend en charge les formats suivants :
-
enhanced(par défaut) — Message d'erreur avec des détails supplémentaires affichés en ligne. À utiliser pour un débogage lisible par l'homme.
-
json— La sortie est formatée sous forme de chaîne JSON
avec tous les champs d'erreur. À utiliser pour l'automatisation et la création de scripts. -
yaml— La sortie est formatée sous forme de chaîne YAML
avec tous les champs d'erreur. À utiliser pour l'automatisation et la création de scripts. -
text— Erreurs de formatage à l'aide du formateur de texte. À utiliser pour un scan visuel rapide.
-
table— Formate les erreurs à l'aide du formateur de tableau. À utiliser pour un scan visuel rapide.
-
legacy— Format d'erreur original sans détails structurés. À utiliser pour des raisons de rétrocompatibilité.
Configuration du format d'erreur
Vous pouvez configurer le format d'erreur à l'aide de l'une des méthodes suivantes :
- Drapeau de ligne de commande
-
$aws<command>--cli-error-format json - Fichier de configuration (
~/.aws/config) -
[default] cli_error_format = json - Variable d'environnement
-
$export AWS_CLI_ERROR_FORMAT=yaml
Formats de sortie d'erreur
Les sections suivantes décrivent chaque format :
Format amélioré (par défaut)
Le format amélioré affiche les messages d'erreur avec des détails supplémentaires intégrés pour les valeurs simples. Pour les structures complexes, le format indique l'utilisation de JSON ou de YAML.
Exemple : configuration de région manquante
aws: [ERROR]: An error occurred (NoRegion): You must specify a region. You can also configure your region by running "aws configure".
Exemple : fonction Lambda inexistante avec des champs supplémentaires
aws: [ERROR]: An error occurred (ResourceNotFoundException) when calling the GetFunction operation: Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345 Additional error details: Type: User
La section « Informations supplémentaires sur les erreurs » affiche uniquement les champs définis dans le modèle de forme d'erreur du service. Les champs non modélisés issus de la réponse d'erreur ne sont pas affichés.
Exemple : champs d'erreur complexes
An error occurred (TransactionCanceledException) when calling the TransactWriteItems operation: Transaction cancelled, please refer cancellation reasons for specific reasons [ConditionalCheckFailed, None] Additional error details: CancellationReasons: <complex value> Use "--cli-error-format json" or another error format to see the full details.
Format JSON
Le format JSON fournit une représentation structurée avec tous les champs d'erreur.
Exemple : configuration de région manquante
{ "Code": "NoRegion", "Message": "You must specify a region. You can also configure your region by running \"aws configure\"." }
Exemple : fonction Lambda inexistante
{ "Code": "ResourceNotFoundException", "Message": "Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345", "Type": "User" }
Format YAML
Le format YAML fournit une représentation structurée avec tous les champs d'erreur.
Exemple : configuration de région manquante
Code: NoRegion Message: You must specify a region. You can also configure your region by running "aws configure".
Exemple : fonction Lambda inexistante
Code: ResourceNotFoundException Message: "Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345" Type: User
Format texte
Le format de texte utilise le même formateur que la sortie de commande réussie.
Exemple : fonction Lambda inexistante
ResourceNotFoundException Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345 User
Format de tableau
Le format de table utilise le même formateur que la sortie de commande réussie.
Exemple : fonction Lambda inexistante
------------------------------------------------------------------------------------------------------------------------------------| | error | +----------------------------+--------------------------------------------------------------------------------------------------+------+ | Code | Message | Type | +----------------------------+--------------------------------------------------------------------------------------------------+------+ | ResourceNotFoundException | Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345 | User | +----------------------------+--------------------------------------------------------------------------------------------------+------+
Ancien format
L'ancien format fournit le format d'erreur d'origine sans détails structurés. Ce format n'inclut pas le préfixe « Une erreur s'est produite (ErrorCode) : » pour les exceptions de la CLI.
Exemple : configuration de région manquante
aws: [ERROR]: You must specify a region. You can also configure your region by running "aws configure".
Exemple : fonction Lambda inexistante
An error occurred (ResourceNotFoundException) when calling the GetFunction operation: Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345
Note
Les erreurs incluent désormais systématiquement le aws: [ERROR]: préfixe des exceptions de la CLI. Les versions antérieures n'incluaient pas toujours ce préfixe.
Les exceptions suivantes utilisent toujours l'ancien format, quel que soit le format d'erreur configuré :
-
UnknownArgumentError— Affiche les informations d'utilisation -
Interruptions du clavier ()
KeyboardInterrupt
Exemple complet
L'exemple suivant montre une commande avec un formatage d'erreur JSON :
$aws lambda get-function \ --function-name nonexistent-function-12345 \ --cli-error-format json
Sortie (stderr) :
{ "Code": "ResourceNotFoundException", "Message": "Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345", "Type": "User" }
Le Type champ est un membre d'erreur modélisé défini dans la forme d'erreur du service Lambda. Seuls les champs définis dans le modèle d'erreur du service sont inclus dans la sortie d'erreur structurée.