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.