AWS CLI nuovi tentativi nel AWS CLI - AWS Command Line Interface

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS CLI nuovi tentativi nel AWS CLI

Questo argomento descrive come è AWS CLI possibile che le chiamate ai AWS servizi non funzionino a causa di problemi imprevisti. Questi problemi possono verificarsi sul lato server o potrebbero non riuscire a causa della limitazione della velocità imposta dal servizio AWS che stai tentando di chiamare. Questi tipi di errori di solito non richiedono una gestione speciale e la chiamata viene rieffettuata automaticamente, spesso dopo un breve periodo di attesa. AWS CLI Fornisce numerose funzionalità che consentono di ritentare le chiamate dei client ai AWS servizi quando si verificano questi tipi di errori o eccezioni.

Modalità di ripetizione disponibili

AWS CLI Ha diverse modalità tra cui scegliere a seconda della versione:

Modalità di riprova standard (impostazione predefinita)

Standardmode è un set standard di regole di riprova AWS SDKs con più funzionalità rispetto alla versione precedente ed è la modalità predefinita per AWS CLI cui è la modalità predefinita. La modalità standard è stata creata per la AWS CLI versione 2 ed è stata trasferita alla AWS CLI versione 1. Le funzionalità della modalità standard includono:

  • Il valore predefinito è 2 per il numero massimo di tentativi di riprova, per un totale di 3 tentativi di chiamata. Questo valore può essere sovrascritto tramite il parametro di configurazione max_attempts.

  • Riprova i tentativi per il seguente elenco esteso di errori/eccezioni:

    • Errori ed eccezioni transitori

      • RequestTimeout

      • RequestTimeoutException

      • PriorRequestNotComplete

      • ConnectionError

      • HTTPClientError

    • Errori ed eccezioni sul lato del servizio throttling/limit :

      • Throttling

      • ThrottlingException

      • ThrottledException

      • RequestThrottledException

      • TooManyRequestsException

      • ProvisionedThroughputExceededException

      • TransactionInProgressException

      • RequestLimitExceeded

      • BandwidthLimitExceeded

      • LimitExceededException

      • RequestThrottled

      • SlowDown

      • EC2ThrottledException

  • Riprova con codici di errore transitori e non descrittivi. In particolare, questi codici di stato HTTP: 500, 502, 503, 504.

  • Qualsiasi nuovo tentativo includerà un backoff esponenziale di un fattore base pari a 2 per un tempo di backoff massimo di 20 secondi.

La modalità Legacy utilizza un gestore di tentativi precedente con funzionalità limitate che includono:

  • Il valore predefinito è 4 per il numero massimo di tentativi di riprova, per un totale di 5 tentativi di chiamata. Questo valore può essere sovrascritto tramite il parametro di configurazione max_attempts.

  • DynamoDB ha un valore predefinito di 9 per il numero massimo di tentativi di riprova, per un totale di 10 tentativi di chiamata. Questo valore può essere sovrascritto tramite il parametro di configurazione max_attempts.

  • Riprova i tentativi per il seguente numero limitato di errori/eccezioni:

    • Errori generali: socket/connection

      • ConnectionError

      • ConnectionClosedError

      • ReadTimeoutError

      • EndpointConnectionError

    • throttling/limit Errori ed eccezioni sul lato del servizio:

      • Throttling

      • ThrottlingException

      • ThrottledException

      • RequestThrottledException

      • ProvisionedThroughputExceededException

  • Tentativi su diversi codici di stato HTTP, tra cui 429, 500, 502, 503, 504 e 509.

  • Qualsiasi nuovo tentativo includerà un backoff esponenziale di un fattore base pari a 2.

Modalità di riprova adattiva

avvertimento

La modalità adattiva è una modalità sperimentale ed è soggetta a modifiche, sia nelle funzionalità che nel comportamento.

La modalità di riprova Adaptive comporta la ripetizione sperimentale che include tutte le funzionalità della modalità standard. Oltre alle funzionalità della modalità standard, la modalità adattiva introduce anche la limitazione della velocità lato client mediante l’uso di un token bucket e di variabili con limite di velocità che vengono aggiornate dinamicamente a ogni nuovo tentativo. Questa modalità offre flessibilità nei tentativi sul lato client e si adatta alla risposta dello stato di un servizio. error/exception AWS

Ad ogni nuovo tentativo, la modalità adattiva modifica le variabili del limite di velocità in base all'errore, all'eccezione o al codice di stato HTTP presentato nella risposta del servizio. AWS Queste variabili relative al limite di velocità vengono quindi utilizzate per calcolare una nuova velocità di chiamata per il client. Ogni risposta HTTP di un AWS servizio (fornita nell'elenco precedente) exception/error o non riuscita aggiorna le variabili rate-limit man mano che vengono effettuati nuovi tentativi fino al raggiungimento dell'esito positivo, all'esaurimento del bucket di token o al raggiungimento del valore massimo di tentativi configurato.

Configurazione di una modalità di riprova

AWS CLI Include una varietà di configurazioni di tentativi e metodi di configurazione da considerare durante la creazione dell'oggetto client.

Metodi di connessione disponibili

In AWS CLI, gli utenti possono configurare i nuovi tentativi nei seguenti modi:

  • Variabili di ambiente

  • AWS CLI file di configurazione

Gli utenti possono personalizzare le seguenti opzioni per la riprova:

  • Modalità di riprova: specifica la modalità di riprova utilizzata. AWS CLI Come descritto in precedenza, sono disponibili tre modalità di riprova: legacy, standard e adattiva. Il valore predefinito per la standard.

  • Numero massimo di tentativi: specifica il valore massimo di tentativi utilizzato dal gestore dei tentativi, in AWS CLI base al quale la chiamata iniziale viene conteggiata ai fini del valore fornito. Il valore predefinito si basa sulla modalità di riprova.

Definizione di una configurazione di una riprova nelle variabili di ambiente

Per definire la configurazione dei nuovi tentativi per AWS CLI, aggiorna le variabili di ambiente del sistema operativo.

Le variabili di ambiente della riprova sono:

  • AWS_RETRY_MODE

  • AWS_MAX_ATTEMPTS

Per ulteriori informazioni sulle variabili di ambiente, consulta Configurazione delle variabili di ambiente per AWS CLI.

Definizione di una nuova configurazione nel file di configurazione AWS

Per modificare la configurazione del nuovo tentativo, aggiorna il file di AWS configurazione globale. La posizione predefinita per il file di configurazione è AWS ~/.aws/config.

Di seguito è riportato un esempio di file di configurazione: AWS

[default] retry_mode = standard max_attempts = 6

Per ulteriori informazioni sui file di configurazione, consulta Impostazioni dei file di configurazione e credenziali in AWS CLI.

Visualizzazione dei log dei tentativi di riprova

AWS CLI Utilizza la metodologia di riprova e la registrazione di Boto3. È possibile utilizzare l’opzione --debug su qualsiasi comando per ricevere i log di debug. Per informazioni su come utilizzare l’opzione --debug, consulta Opzioni della riga di comando in AWS CLI.

Se cerchi “retry” nei log di debug, troverai le informazioni sui nuovi tentativi di cui hai bisogno. Le voci di log del client relative ai tentativi dipendono dalla modalità di riprova abilitata.

Modalità legacy:

I messaggi di riprova vengono generati da botocore.retryhandler. Vedrai uno dei tre messaggi seguenti:

  • No retry needed

  • Retry needed, action of: <action_name>

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

Modalità standard o adattiva:

I messaggi di riprova vengono generati da botocore.retries.standard. Vedrai uno dei tre messaggi seguenti:

  • No retrying request

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

  • Retry needed but retry quota reached, not retrying request

Per il file di definizione completo dei tentativi di botocore, consulta _retry.json nel repository botocore. GitHub