

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
<a name="cli-usage-error-format"></a>

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`](#cli-error-format-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`](#cli-error-format-json)**— La sortie est formatée sous forme de chaîne [JSON](https://json.org/) avec tous les champs d'erreur. À utiliser pour l'automatisation et la création de scripts.
+ **[`yaml`](#cli-error-format-yaml)**— La sortie est formatée sous forme de chaîne [YAML](https://yaml.org/) avec tous les champs d'erreur. À utiliser pour l'automatisation et la création de scripts.
+ **[`text`](#cli-error-format-text)**— Erreurs de formatage à l'aide du formateur de texte. À utiliser pour un scan visuel rapide.
+ **[`table`](#cli-error-format-table)**— Formate les erreurs à l'aide du formateur de tableau. À utiliser pour un scan visuel rapide.
+ **[`legacy`](#cli-error-format-legacy)**— Format d'erreur original sans détails structurés. À utiliser pour des raisons de rétrocompatibilité.

## Configuration du format d'erreur
<a name="cli-error-format-configuring"></a>

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
<a name="cli-error-output-formats"></a>

Les sections suivantes décrivent chaque format :

### Format amélioré (par défaut)
<a name="cli-error-format-enhanced"></a>

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
<a name="cli-error-format-json"></a>

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
<a name="cli-error-format-yaml"></a>

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
<a name="cli-error-format-text"></a>

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
<a name="cli-error-format-table"></a>

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
<a name="cli-error-format-legacy"></a>

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
<a name="cli-error-format-example"></a>

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.