Sortie d'erreur structurée dans AWS CLI - AWS Command Line Interface

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 : compartiment S3 inexistant avec des champs supplémentaires

aws: [ERROR]: An error occurred (NoSuchBucket) when calling the GetObject operation: The specified bucket does not exist Additional error details: BucketName: amzn-s3-demo-bucket

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 : compartiment S3 inexistant

{ "Code": "NoSuchBucket", "Message": "The specified bucket does not exist", "BucketName": "amzn-s3-demo-bucket" }

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 : compartiment S3 inexistant

Code: NoSuchBucket Message: The specified bucket does not exist BucketName: amzn-s3-demo-bucket

Format texte

Le format de texte utilise le même formateur que la sortie de commande réussie.

Exemple : compartiment S3 inexistant

amzn-s3-demo-bucket NoSuchBucket The specified bucket does not exist

Format de tableau

Le format de table utilise le même formateur que la sortie de commande réussie.

Exemple : compartiment S3 inexistant

-------------------------------------------------------------------------------------| | error | +---------------------------+---------------+----------------------------------------+ | BucketName | Code | Message | +---------------------------+---------------+----------------------------------------+ | amzn-s3-demo-bucket | NoSuchBucket | The specified bucket does not exist | +---------------------------+---------------+----------------------------------------+

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 : compartiment S3 inexistant

An error occurred (NoSuchBucket) when calling the GetObject operation: The specified bucket does not exist
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 s3api get-object \ --bucket amzn-s3-demo-bucket \ --key file.txt out.txt \ --cli-error-format json

Sortie (stderr) :

{ "Code": "NoSuchBucket", "Message": "The specified bucket does not exist", "BucketName": "amzn-s3-demo-bucket" }

Le BucketName champ est un membre d'erreur modélisé renvoyé par le service Amazon S3.