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

In questo argomento viene descritto il modo in cui le chiamate ai AWS servizi AWS CLI potrebbero non riuscire a causa di problemi imprevisti. Questi problemi possono verificarsi sul lato server o potrebbero non riuscire a causa della limitazione della velocità imposta dal AWS servizio 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 molte funzionalità che aiutano a ritentare le chiamate dei client ai AWS servizi quando si verificano questi tipi di errori o eccezioni.

Modalità di riprova disponibili

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

modalità Legacy Retry

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

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

  • DynamoDB ha un valore predefinito di 9 per il numero massimo di tentativi di ripetizione, 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 di socket/connessione:

      • ConnectionError

      • ConnectionClosedError

      • ReadTimeoutError

      • EndpointConnectionError

    • Errori ed eccezioni di limitazione/limitazione sul lato del servizio:

      • Throttling

      • ThrottlingException

      • ThrottledException

      • RequestThrottledException

      • ProvisionedThroughputExceededException

  • Riprova con diversi codici di HTTP stato, 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 standard

La modalità standard è un insieme standard di regole di nuovo tentativo AWS SDKs con più funzionalità rispetto alla versione precedente. Questa modalità è l'impostazione predefinita per la AWS CLI versione 2. 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 ripetizione, per un totale di 3 tentativi di chiamata. Questo valore può essere sovrascritto tramite il parametro di max_attempts configurazione.

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

    • Errori/eccezioni transitori

      • RequestTimeout

      • RequestTimeoutException

      • PriorRequestNotComplete

      • ConnectionError

      • HTTPClientError

    • Errori ed eccezioni di limitazione/limitazione sul lato del servizio:

      • Throttling

      • ThrottlingException

      • ThrottledException

      • RequestThrottledException

      • TooManyRequestsException

      • ProvisionedThroughputExceededException

      • TransactionInProgressException

      • RequestLimitExceeded

      • BandwidthLimitExceeded

      • LimitExceededException

      • RequestThrottled

      • SlowDown

      • EC2ThrottledException

  • Riprova con codici di errore temporanei e non descrittivi. In particolare, questi codici di HTTP stato: 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.

Modalità di ritentativo adattiva

avvertimento

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

La modalità di riprova adattiva è una modalità di riprova sperimentale che include tutte le funzionalità della modalità standard. Oltre alle funzionalità della modalità standard, la modalità adattiva introduce anche la limitazione della velocità sul lato client mediante l'uso di un token bucket e di variabili rate-limit che vengono aggiornate dinamicamente a ogni nuovo tentativo. Questa modalità offre flessibilità nei tentativi lato client e si adatta alla risposta allo stato di errore/eccezione di un servizio. 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 presentato nella risposta del servizio. HTTP AWS Queste variabili relative al limite di velocità vengono quindi utilizzate per calcolare una nuova tariffa di chiamata per il client. Ogni HTTP risposta di eccezione/errore o insuccesso (fornita nell'elenco precedente) fornita da un AWS servizio aggiorna le variabili relative al limite di frequenza man mano che si verificano nuovi tentativi fino al raggiungimento del successo, all'esaurimento del bucket di token o al raggiungimento del valore massimo di tentativi configurato.

Configurazione di una modalità di ripetizione

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

Metodi di configurazione 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 di riprova:

  • Modalità 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 . La AWS CLI versione 2 è 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 è 5.

Definizione di una configurazione di nuovo tentativo nelle variabili di ambiente

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

Le variabili di ambiente Retry sono:

  • AWS_RETRY_MODE

  • AWS_MAX_ATTEMPTS

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

Definizione di una nuova configurazione nel file AWS di configurazione

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, vedereImpostazioni dei file di configurazione e credenziali in AWS CLI.

Visualizzazione dei registri dei tentativi di nuovo tentativo

AWS CLI Utilizza la metodologia di riprova e la registrazione di Boto3. È possibile utilizzare l'--debugopzione su qualsiasi comando per ricevere i registri di debug. Per ulteriori informazioni su come utilizzare l'--debugopzione, vedere. Opzioni della riga di comando in AWS CLI

Se cerchi «riprova» nei log di debug, troverai le informazioni sui nuovi tentativi di cui hai bisogno. Le voci del registro del client relative ai tentativi di nuovo tentativo dipendono dalla modalità di ritentativo 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