View a markdown version of this page

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 existierende Lambda-Funktion mit zusätzlichen Feldern

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

Im Abschnitt „Zusätzliche Fehlerdetails“ werden nur Felder angezeigt, die im Fehlerformmodell des Dienstes definiert sind. Nicht modellierte Felder aus der Fehlerantwort werden nicht angezeigt.

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: Lambda-Funktion nicht vorhanden

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

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: Lambda-Funktion nicht vorhanden

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

Textformat

Das Textformat verwendet denselben Formatierer wie die erfolgreiche Befehlsausgabe.

Beispiel: Lambda-Funktion nicht vorhanden

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

Tabellenformat

Das Tabellenformat verwendet denselben Formatierer wie die erfolgreiche Befehlsausgabe.

Beispiel: Lambda-Funktion nicht vorhanden

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

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: Lambda-Funktion nicht vorhanden

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

Ausgabe (stderr):

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

Das Type Feld ist ein modelliertes Fehlerelement, das in der Fehlerform des Lambda-Service definiert ist. Nur Felder, die im Fehlermodell des Dienstes definiert sind, sind in der strukturierten Fehlerausgabe enthalten.