Output di errore strutturato nel AWS CLI - AWS Command Line Interface

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Output di errore strutturato nel AWS CLI

Questo argomento descrive i formati di output di errore strutturati per AWS Command Line Interface (AWS CLI). La CLI scrive errori su stderr e supporta i seguenti formati:

  • enhanced(impostazione predefinita): messaggio di errore con dettagli aggiuntivi visualizzati in linea. Utilizzare per il debug leggibile dall'uomo.

  • json— L'output è formattato come una stringa JSON con tutti i campi di errore. Utilizzare per l'automazione e lo scripting.

  • yaml— L'output è formattato come stringa YAML con tutti i campi di errore. Utilizzare per l'automazione e lo scripting.

  • text— Formatta gli errori utilizzando il formattatore di testo. Utilizzare per una scansione visiva rapida.

  • table— Formatta gli errori utilizzando il formattatore di tabelle. Utilizzare per una scansione visiva rapida.

  • legacy— Formato di errore originale senza dettagli strutturati. Utilizzare per la compatibilità con le versioni precedenti.

Configurazione del formato di errore

È possibile configurare il formato dell'errore utilizzando uno dei seguenti metodi:

contrassegno della riga di comando
$ aws <command> --cli-error-format json
File di configurazione () ~/.aws/config
[default] cli_error_format = json
Variabile di ambiente
$ export AWS_CLI_ERROR_FORMAT=yaml

Formati di output di errore

Le seguenti sezioni descrivono ogni formato:

Formato avanzato (predefinito)

Il formato avanzato visualizza messaggi di errore con dettagli aggiuntivi in linea per valori semplici. Per strutture complesse, il formato suggerisce di utilizzare JSON o YAML.

Esempio: configurazione della regione mancante

aws: [ERROR]: An error occurred (NoRegion): You must specify a region. You can also configure your region by running "aws configure".

Esempio: bucket S3 inesistente con campi aggiuntivi

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

Esempio: campi di errore complessi

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.

Formato JSON

Il formato JSON fornisce una rappresentazione strutturata con tutti i campi di errore.

Esempio: configurazione della regione mancante

{ "Code": "NoRegion", "Message": "You must specify a region. You can also configure your region by running \"aws configure\"." }

Esempio: bucket S3 inesistente

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

Formato YAML

Il formato YAML fornisce una rappresentazione strutturata con tutti i campi di errore.

Esempio: configurazione della regione mancante

Code: NoRegion Message: You must specify a region. You can also configure your region by running "aws configure".

Esempio: bucket S3 inesistente

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

Formato testo

Il formato di testo utilizza lo stesso formattatore utilizzato per l'output di un comando riuscito.

Esempio: bucket S3 inesistente

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

Formato della tabella

Il formato della tabella utilizza lo stesso formattatore utilizzato per l'output del comando corretto.

Esempio: bucket S3 inesistente

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

Formato precedente

Il formato legacy fornisce il formato di errore originale senza dettagli strutturati. Questo formato non include il prefisso «An error occurred (ErrorCode):» per le eccezioni CLI.

Esempio: configurazione della regione mancante

aws: [ERROR]: You must specify a region. You can also configure your region by running "aws configure".

Esempio: bucket S3 inesistente

An error occurred (NoSuchBucket) when calling the GetObject operation: The specified bucket does not exist
Nota

Gli errori ora includono costantemente il aws: [ERROR]: prefisso per le eccezioni CLI. Le versioni precedenti non sempre includevano questo prefisso.

Le seguenti eccezioni utilizzano sempre il formato precedente indipendentemente dal formato di errore configurato:

  • UnknownArgumentError— Visualizza le informazioni sull'utilizzo

  • Interruzioni da tastiera () KeyboardInterrupt

Esempio completo

L'esempio seguente mostra un comando con formattazione di errore JSON:

$ aws s3api get-object \ --bucket amzn-s3-demo-bucket \ --key file.txt out.txt \ --cli-error-format json

Output (stderr):

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

Il BucketName campo è un membro di errore modellato restituito dal servizio Amazon S3.