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 versucht es erneut in der AWS CLI
In diesem Thema wird beschrieben, wie Aufrufe von AWS Diensten aufgrund unerwarteter Probleme fehlschlagen können. AWS CLI 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 deren Hilfe Client-Aufrufe an AWS Dienste wiederholt werden können, wenn diese Art von Fehlern oder Ausnahmen auftritt.
Themen
Verfügbare Wiederholungsmodi
Je nach Version stehen mehrere Modi zur Auswahl: AWS CLI
Standardmodus für die Wiederholung(Standard)
StandardDer Modus ist ein Standardsatz von Wiederholungsregeln für alle AWS SDKs mit mehr Funktionen als bei älteren Versionen. Er ist der Standardmodus für AWS CLI Version 2. Der Standardmodus wurde für AWS CLI Version 2 erstellt und wird auf Version 1 zurückportiert AWS CLI . 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. -
Versuchen Sie es erneut mit der folgenden erweiterten Liste von: errors/exceptions
-
Vorübergehend errors/exceptions
-
RequestTimeout -
RequestTimeoutException -
PriorRequestNotComplete -
ConnectionError -
HTTPClientError
-
-
Service-side throttling/limit Fehler und Ausnahmen:
-
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.
Legacy-Wiederholungsmodus
Legacymode ist der Standardmodus für AWS CLI Version 1 und verwendet einen älteren Wiederholungshandler 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. -
Versuchen Sie es erneut mit der folgenden begrenzten Anzahl von: errors/exceptions
-
Allgemeine socket/connection Fehler:
-
ConnectionError -
ConnectionClosedError -
ReadTimeoutError -
EndpointConnectionError
-
-
Service-side throttling/limit Fehler und Ausnahmen:
-
Throttling -
ThrottlingException -
ThrottledException -
RequestThrottledException -
ProvisionedThroughputExceededException
-
-
-
Wiederholungsversuche für mehrere HTTP-Statuscodes, einschließlich 429, 500, 502, 503, 504 und 509.
-
Jeder Wiederholungsversuch enthält ein exponentielles Backoff um den Basisfaktor 2.
Adaptiver Wiederholungsmodus
Warnung
Der adaptive Modus ist ein experimenteller Modus und kann sich sowohl in den Features als auch im Verhalten ändern.
Der Adaptive-Wiederholungsmodus ist ein experimenteller Wiederholungsmodus, der alle Features des Standardmodus enthält. Zusätzlich zu den Standardmodus-Features 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 error/exception Statusantwort eines Dienstes an. AWS
Bei jedem neuen Wiederholungsversuch ändert der adaptive Modus die Variablen für die Geschwindigkeitsbegrenzung auf der Grundlage des Fehlers, der Ausnahme oder des HTTP-Statuscodes, der in der Antwort des Dienstes angegeben ist. AWS Diese Ratenbegrenzungsvariablen werden dann verwendet, um eine neue Aufrufrate für den Client zu berechnen. Jede exception/error oder jede erfolglose HTTP-Antwort (in der obigen Liste aufgeführt) von einem AWS Dienst aktualisiert die Ratenbegrenzungsvariablen bei Wiederholungen, bis der Erfolg erreicht ist, der Token-Bucket erschöpft ist oder der konfigurierte Wert für die maximale Anzahl von Versuchen erreicht ist.
Konfigurieren eines Wiederholungsversuchsmodus
Das AWS CLI umfasst eine Vielzahl von Wiederholungskonfigurationen sowie 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 verwendet wird AWS CLI . Wie zuvor beschrieben, stehen drei Wiederholungsmodi zur Verfügung: Legacy, Standard und Adaptive. Der Standardwert für AWS CLI Version 2 ist Standard.
-
Max. Versuche — Gibt den Wert der maximalen Wiederholungsversuche an, die der AWS CLI Wiederholungshandler verwendet, wobei der erste Aufruf auf den von Ihnen angegebenen Wert angerechnet wird. Der Standardwert basiert auf Ihrem Wiederholungsmodus.
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.
Definieren Sie eine Wiederholungskonfiguration in Ihrem AWS Konfigurationsdatei
Um Ihre Wiederholungskonfiguration zu ändern, aktualisieren Sie Ihre globale AWS Konfigurationsdatei. Der Standardspeicherort für Ihre AWS Konfigurationsdatei ist ~/. aws/config.
Das Folgende ist ein Beispiel für eine AWS Konfigurationsdatei:
[default] retry_mode = standard max_attempts = 6
Weitere Informationen zu Konfigurationsdateien finden Sie unter Einstellungen für die Konfiguration und die Anmeldeinformationsdatei in der AWS CLI.
Anzeigen von Protokollen von Wiederholungsversuchen
Das AWS CLI verwendet die Wiederholungsmethodik und die 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 für Botocore-Wiederholungen finden Sie unter _retry.json im Botocore-Repository.