Strukturierte Fehlerausgabe in der AWS CLI - AWS Command Line Interface

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Strukturierte Fehlerausgabe in der AWS CLI

In diesem Thema werden die strukturierten Fehlerausgabeformate für AWS Command Line Interface (AWS CLI) beschrieben. Die CLI schreibt Fehler in stderr und unterstützt die folgenden Formate:

  • enhanced(Standard) — Fehlermeldung mit zusätzlichen Details, die direkt angezeigt werden. Wird für menschenlesbares Debugging verwendet.

  • json— Die Ausgabe ist als JSON-Zeichenfolge mit allen Fehlerfeldern formatiert. Wird für Automatisierung und Skripting verwendet.

  • yaml— Die Ausgabe ist als YAML-String mit allen Fehlerfeldern formatiert. Wird für Automatisierung und Skripting verwendet.

  • text— Formatiert Fehler mit dem Textformatierer. Für schnelles visuelles Scannen verwenden.

  • table— Formatiert Fehler mit dem Tabellenformatierer. Für schnelles visuelles Scannen verwenden.

  • legacy— Ursprüngliches Fehlerformat ohne strukturierte Details. Aus Gründen der Abwärtskompatibilität verwenden.

Fehlerformat wird konfiguriert

Sie können das Fehlerformat mit einer der folgenden Methoden konfigurieren:

Befehlszeilen-Flag
$ aws <command> --cli-error-format json
Konfigurationsdatei () ~/.aws/config
[default] cli_error_format = json
Umgebungsvariable
$ export AWS_CLI_ERROR_FORMAT=yaml

Fehler bei den Ausgabeformaten

In den folgenden Abschnitten werden die einzelnen Formate beschrieben:

Verbessertes Format (Standard)

Das erweiterte Format zeigt Fehlermeldungen mit zusätzlichen Inline-Details für einfache Werte an. Für komplexe Strukturen bietet das Format einen Hinweis zur Verwendung von JSON oder YAML.

Beispiel: Fehlende Regionskonfiguration

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

Beispiel: Nicht vorhandener S3-Bucket mit zusätzlichen Feldern

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

Beispiel: Komplexe Fehlerfelder

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.

JSON-Format

Das JSON-Format bietet eine strukturierte Darstellung mit allen Fehlerfeldern.

Beispiel: Fehlende Regionskonfiguration

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

Beispiel: S3-Bucket existiert nicht

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

YAML-Format

Das YAML-Format bietet eine strukturierte Darstellung mit allen Fehlerfeldern.

Beispiel: Fehlende Regionskonfiguration

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

Beispiel: S3-Bucket existiert nicht

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

Textformat

Das Textformat verwendet denselben Formatierer wie die erfolgreiche Befehlsausgabe.

Beispiel: Nicht vorhandener S3-Bucket

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

Tabellenformat

Das Tabellenformat verwendet denselben Formatierer wie die erfolgreiche Befehlsausgabe.

Beispiel: Nicht vorhandener S3-Bucket

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

Legacy-Format

Das Legacy-Format bietet das ursprüngliche Fehlerformat ohne strukturierte Details. Dieses Format enthält nicht das Präfix „Ein Fehler ist aufgetreten (ErrorCode):“ für CLI-Ausnahmen.

Beispiel: Fehlende Regionskonfiguration

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

Beispiel: S3-Bucket existiert nicht

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

Fehler enthalten jetzt durchgängig das aws: [ERROR]: Präfix für CLI-Ausnahmen. Frühere Versionen enthielten dieses Präfix nicht immer.

Die folgenden Ausnahmen verwenden immer das Legacy-Format, unabhängig vom konfigurierten Fehlerformat:

  • UnknownArgumentError— Zeigt Nutzungsinformationen an

  • Tastaturunterbrechungen () KeyboardInterrupt

Vollständiges Beispiel

Das folgende Beispiel zeigt einen Befehl mit JSON-Fehlerformatierung:

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

Ausgabe (stderr):

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

Das BucketName Feld ist ein modelliertes Fehlerelement, das vom Amazon S3 S3-Service zurückgegeben wurde.