AWS CLI Wiederholungen in der AWS CLI - AWS Command Line Interface

Diese Dokumentation bezieht sich AWS CLI nur auf Version 1 von. Dokumentation zu Version 2 von finden Sie im Benutzerhandbuch für Version 2. AWS CLI

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.

AWS CLI Wiederholungen in der AWS CLI

In diesem Thema wird beschrieben, wie AWS CLI Dienstanrufe aufgrund AWS unerwarteter Probleme fehlschlagen können. Diese Probleme können serverseitig auftreten oder auf eine Ratenbegrenzung des AWS -Services, den Sie aufrufen möchten, zurückzuführen sein. Solche Ausfälle erfordern in der Regel keine besondere Behandlung und der Aufruf wird, oft nach einer kurzen Wartezeit, automatisch erneut getätigt. Das AWS CLI bietet viele Funktionen, mit denen Sie versuchen können, Kundenanrufe bei AWS Diensten zu wiederholen, wenn solche Fehler oder Ausnahmen auftreten.

Verfügbare Wiederholungsmodi

Legacy-Wiederholungsmodus

Der Legacy-Modus ist der Standardmodus, der von AWS CLI Version 1 verwendet wird.Der Legacy-Modus verwendet einen älteren Wiederholungs-Handler mit eingeschränkter Funktionalität, der Folgendes umfasst:

  • Einen Standardwert von 4 für maximale Wiederholungsversuche, was insgesamt 5 Aufrufversuche ergibt. Dieser Wert kann durch den Konfigurationsparameter max_attempts überschrieben werden.

  • Dynamo DB hat einen Standardwert von 9 für maximale Wiederholungsversuche, was insgesamt 10 Aufrufversuche ergibt. Dieser Wert kann durch den Konfigurationsparameter max_attempts überschrieben werden.

  • Wiederholungsversuche für die folgende begrenzte Anzahl von Fehlern/Ausnahmen:

    • Allgemeine Socket-/Verbindungsfehler:

      • ConnectionError

      • ConnectionClosedError

      • ReadTimeoutError

      • EndpointConnectionError

    • Serviceseitige Fehler und Ausnahmen durch Drosselung/Begrenzung:

      • Throttling

      • ThrottlingException

      • ThrottledException

      • RequestThrottledException

      • ProvisionedThroughputExceededException

  • Versuchen Sie es erneut mit mehreren HTTP Statuscodes, darunter 429, 500, 502, 503, 504 und 509.

  • Jeder Wiederholungsversuch enthält ein exponentielles Backoff um den Basisfaktor 2.

Standardmodus für die Wiederholung

Der Standardmodus ist ein Standardsatz von Wiederholungsregeln für alle, die mehr Funktionen bieten als die AWS SDKs Vorgängerversion. Der Standardmodus wurde für AWS CLI Version 2 erstellt und auf AWS CLI Version 1 zurückportiert. Die Funktionalität des Standardmodus umfasst:

  • Ein Standardwert von 2 für maximale Wiederholungsversuche, was insgesamt 3 Anrufversuche ergibt. Dieser Wert kann durch den Konfigurationsparameter max_attempts überschrieben werden.

  • Wiederholungsversuche für die folgende erweiterte Liste von Fehlern/Ausnahmen:

    • Transiente Fehler/Ausnahmen

      • RequestTimeout

      • RequestTimeoutException

      • PriorRequestNotComplete

      • ConnectionError

      • HTTPClientError

    • Serviceseitige Fehler und Ausnahmen durch Drosselung/Begrenzung:

      • Throttling

      • ThrottlingException

      • ThrottledException

      • RequestThrottledException

      • TooManyRequestsException

      • ProvisionedThroughputExceededException

      • TransactionInProgressException

      • RequestLimitExceeded

      • BandwidthLimitExceeded

      • LimitExceededException

      • RequestThrottled

      • SlowDown

      • EC2ThrottledException

  • Wiederholungsversuche für nicht beschreibende, transiente Fehlercodes. Insbesondere diese HTTP Statuscodes: 500, 502, 503, 504.

  • Jeder Wiederholungsversuch beinhaltet ein exponentielles Backoff um einen Basisfaktor von 2 für eine maximale Backoff-Zeit von 20 Sekunden.

Adaptiver Wiederholungsmodus

Warnung

Der adaptive Modus ist ein experimenteller Modus und kann sich sowohl in den Funktionen als auch im Verhalten ändern.

Der adaptive Wiederholungsmodus ist ein experimenteller Wiederholungsmodus, der alle Funktionen des Standardmodus enthält. Zusätzlich zu den Standardmodusfunktionen führt der adaptive Modus auch die clientseitige Ratenbegrenzung durch die Verwendung eines Token-Buckets und Ratenbegrenzungsvariablen ein, die bei jedem Wiederholungsversuch dynamisch aktualisiert werden. Dieser Modus bietet Flexibilität bei clientseitigen Wiederholungsversuchen und passt sich an die Fehler-/Ausnahmestatusantwort eines Dienstes an. AWS

Bei jedem erneuten Versuch ändert der adaptive Modus die Variablen für die Ratenbegrenzung auf der Grundlage des in der Antwort des Dienstes angegebenen Fehler-, Ausnahme- oder HTTP Statuscode. AWS Diese Ratenbegrenzungsvariablen werden dann verwendet, um eine neue Aufrufrate für den Client zu berechnen. Jede Ausnahmen/Fehler- oder HTTP Nichterfolgsantwort (in der obigen Liste aufgeführt) eines AWS Dienstes aktualisiert die Variablen für die Ratenbegrenzung bei Wiederholungsversuchen, bis der Erfolg erreicht ist, der Token-Bucket erschöpft ist oder der konfigurierte Wert für maximale Versuche erreicht ist.

Konfigurieren eines Wiederholungsversuchsmodus

AWS CLI Dazu gehören eine Vielzahl von Wiederholungskonfigurationen und Konfigurationsmethoden, die Sie bei der Erstellung Ihres Client-Objekts berücksichtigen sollten.

Verfügbare Konfigurationsmethoden

In der AWS CLI können Benutzer Wiederholungsversuche auf folgende Weise konfigurieren:

  • Umgebungsvariablen

  • AWS CLI Konfigurationsdatei

Die folgenden Optionen für Wiederholungsversuche können angepasst werden:

  • Wiederholungsmodus — Gibt an, welchen Wiederholungsmodus der AWS CLI Benutzer verwendet. Wie zuvor beschrieben, stehen drei Wiederholungsmodi zur Verfügung: Legacy, Standard und Adaptive. Der Standardwert für AWS CLI Version 1 ist AWS CLI Legacy-Version Standard.

  • Max. Versuche — Gibt den Wert der maximalen Anzahl von Wiederholungsversuchen an, die der AWS CLI Wiederholungshandler verwendet, wobei der erste Aufruf auf den von Ihnen angegebenen Wert angerechnet wird. Der Standardwert ist 5.

Definieren einer Wiederholungskonfiguration in Ihren Umgebungsvariablen

Um Ihre Wiederholungskonfiguration für zu definieren AWS CLI, aktualisieren Sie die Umgebungsvariablen Ihres Betriebssystems.

Die Umgebungsvariablen für den Wiederholungsversuch sind:

  • AWS_RETRY_MODE

  • AWS_MAX_ATTEMPTS

Weitere Informationen zu Umgebungsvariablen finden Sie unter Konfiguration von Umgebungsvariablen für AWS CLI.

Anzeigen von Protokollen von Wiederholungsversuchen

Das AWS CLI verwendet die Wiederholungsmethode und Protokollierung von Boto3. Sie können die --debug-Option für einen beliebigen Befehl benutzen, um Debug-Protokolle zu empfangen. Weitere Informationen zur Verwendung der Option --debug finden Sie unter Befehlszeilenoptionen in der AWS CLI.

Wenn Sie in den Debug-Protokollen nach „retry“ suchen, finden Sie die erforderlichen Wiederholungsinformationen. Die Clientprotokolleinträge für Wiederholungsversuche hängen davon ab, welchen Wiederholungsmodus Sie aktiviert haben.

Legacy-Modus:

Wiederholungsmeldungen werden von botocore.retryhandler generiert. Es wird eine von drei Meldungen angezeigt:

  • No retry needed

  • Retry needed, action of: <action_name>

  • Reached the maximum number of retry attempts: <attempt_number>

Standard- oder adaptiver Modus:

Wiederholungsmeldungen werden von botocore.retries.standard generiert. Es wird eine von drei Meldungen angezeigt:

  • No retrying request

  • Retry needed, retrying request after delay of: <delay_value>

  • Retry needed but retry quota reached, not retrying request

Die vollständige Definitionsdatei der Botocore-Wiederholungen finden Sie unter _retry.json im Botocore-Repository. GitHub