View a markdown version of this page

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 una stringa YAML con tutti i campi di errore. Utilizzare per l'automazione e lo scripting.

  • text— Formatta gli errori utilizzando il formattatore di testo. Utilizzatelo 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 (impostazione predefinita)

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: funzione Lambda inesistente con campi aggiuntivi

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 sezione «Dettagli aggiuntivi sull'errore» mostra solo i campi definiti nel modello di forma dell'errore del servizio. I campi non modellati della risposta all'errore non vengono visualizzati.

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: funzione Lambda inesistente

{ "Code": "ResourceNotFoundException", "Message": "Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345", "Type": "User" }

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: funzione Lambda inesistente

Code: ResourceNotFoundException Message: "Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345" Type: User

Formato testo

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

Esempio: funzione Lambda inesistente

ResourceNotFoundException Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345 User

Formato della tabella

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

Esempio: funzione Lambda inesistente

------------------------------------------------------------------------------------------------------------------------------------| | error | +----------------------------+--------------------------------------------------------------------------------------------------+------+ | Code | Message | Type | +----------------------------+--------------------------------------------------------------------------------------------------+------+ | ResourceNotFoundException | Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345 | User | +----------------------------+--------------------------------------------------------------------------------------------------+------+

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: funzione Lambda inesistente

An error occurred (ResourceNotFoundException) when calling the GetFunction operation: Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345
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 lambda get-function \ --function-name nonexistent-function-12345 \ --cli-error-format json

Output (stderr):

{ "Code": "ResourceNotFoundException", "Message": "Function not found: arn:aws:lambda:us-west-2:123456789012:function:nonexistent-function-12345", "Type": "User" }

Il Type campo è un membro di errore modellato definito nella forma di errore del servizio Lambda. Solo i campi definiti nel modello di errore del servizio sono inclusi nell'output di errore strutturato.