AWS CLI novas tentativas no AWS CLI - AWS Command Line Interface

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS CLI novas tentativas no AWS CLI

Este tópico descreve como as chamadas para AWS serviços AWS CLI podem falhar devido a problemas inesperados. Esses problemas podem ocorrer no lado do servidor ou podem falhar devido à limitação de taxa do serviço da AWS que você está tentando chamar. Esses tipos de falhas geralmente não exigem tratamento especial e a chamada é feita automaticamente novamente, em geral após um breve período de espera. AWS CLI Ele fornece muitos recursos para auxiliar na repetição de chamadas de clientes para AWS serviços quando esses tipos de erros ou exceções ocorrem.

Modos de novas tentativas disponíveis

AWS CLI Tem vários modos para escolher, dependendo da sua versão:

Modo de novas tentativas herdado

O modo herdado usa um manipulador de novas tentativas mais antigo e com funcionalidade limitada que inclui:

  • Um valor padrão de 4 para o máximo de novas tentativas, totalizando 5 tentativas de chamada. Esse valor pode ser sobrescrito por meio do parâmetro de configuração max_attempts.

  • No DynamoDB, o valor padrão máximo de novas tentativas é nove, totalizando dez tentativas de chamada. Esse valor pode ser sobrescrito por meio do parâmetro de configuração max_attempts.

  • Novas tentativas para o seguinte número limitado de erros e exceções:

    • Erros gerais de soquete e conexão:

      • ConnectionError

      • ConnectionClosedError

      • ReadTimeoutError

      • EndpointConnectionError

    • Erros e exceções de controle de utilização ou limitação no lado do serviço:

      • Throttling

      • ThrottlingException

      • ThrottledException

      • RequestThrottledException

      • ProvisionedThroughputExceededException

  • Tente novamente com vários códigos de HTTP status, incluindo 429, 500, 502, 503, 504 e 509.

  • Qualquer tentativa de repetição incluirá um recuo exponencial por um fator de base 2.

Modo de nova tentativa padrão

O modo padrão é um conjunto padrão de regras de repetição em todo o mundo AWS SDKs com mais funcionalidade do que o legado. Esse é o modo padrão para a AWS CLI versão 2. O modo padrão foi criado para a AWS CLI versão 2 e é transferido para a AWS CLI versão 1. A funcionalidade do modo padrão inclui:

  • Um valor padrão de 2 para o máximo de novas tentativas, totalizando 3 tentativas de chamada. Esse valor pode ser sobrescrito por meio do parâmetro de configuração max_attempts.

  • Novas tentativas para a seguinte lista estendida de erros/exceções:

    • Erros e exceções transientes

      • RequestTimeout

      • RequestTimeoutException

      • PriorRequestNotComplete

      • ConnectionError

      • HTTPClientError

    • Erros e exceções de controle de utilização ou limitação no lado do serviço:

      • Throttling

      • ThrottlingException

      • ThrottledException

      • RequestThrottledException

      • TooManyRequestsException

      • ProvisionedThroughputExceededException

      • TransactionInProgressException

      • RequestLimitExceeded

      • BandwidthLimitExceeded

      • LimitExceededException

      • RequestThrottled

      • SlowDown

      • EC2ThrottledException

  • Novas tentativas em códigos de erro não descritivos transientes. Especificamente, esses códigos de HTTP status: 500, 502, 503, 504.

  • Qualquer nova tentativa incluirá um recuo exponencial por um fator de base 2 para um tempo máximo de recuo de 20 segundos.

Modo de nova tentativa adaptável

Atenção

O modo adaptativo é um experimental e está sujeito a modificações, tanto em suas características quanto em seu comportamento.

O modo de nova tentativa adaptativo é um modo de repetição experimental que inclui todos os recursos do modo padrão. Além dos recursos do modo padrão, o modo adaptativo também introduz limitação de taxa no lado do cliente através do uso de um bucket de token e variáveis de limite de taxa que são atualizadas dinamicamente com cada tentativa de repetição. Esse modo oferece flexibilidade nas novas tentativas do lado do cliente que se adaptam à resposta do estado de erro/exceção de um serviço. AWS

A cada nova tentativa de repetição, o modo adaptativo modifica as variáveis de limite de taxa com base no erro, na exceção ou no código de HTTP status apresentado na resposta do serviço. AWS Essas variáveis de limite de taxa são usadas para calcular uma nova taxa de chamada para o cliente. Cada HTTP resposta de exceção/erro ou falha (fornecida na lista acima) de um AWS serviço atualiza as variáveis de limite de taxa à medida que ocorrem novas tentativas até que o sucesso seja alcançado, o token bucket se esgote ou o valor máximo de tentativas configurado seja atingido.

Configuração um modo de nova tentativa

AWS CLI Isso inclui uma variedade de configurações de repetição e métodos de configuração a serem considerados ao criar seu objeto cliente.

Métodos de configuração disponíveis

No AWS CLI, os usuários podem configurar novas tentativas das seguintes maneiras:

  • Variáveis de ambiente

  • AWS CLI arquivo de configuração

Os usuários podem personalizar as seguintes opções de novas tentativas:

  • Modo de repetição - especifica qual modo de repetição ele usa. AWS CLI Conforme descrito anteriormente existem três modos de repetição disponíveis: herdado (o modo usado por padrão), padrão e adaptativo. O valor padrão para a , a AWS CLI versão 2 é padrão.

  • Máximo de tentativas - especifica o valor máximo de tentativas que o manipulador de AWS CLI repetição usa, em que a chamada inicial conta para o valor que você fornece. O valor padrão é 5.

Definição de uma configuração de novas tentativas em suas variáveis de ambiente

Para definir sua configuração de nova tentativa para o AWS CLI, atualize as variáveis de ambiente do seu sistema operacional.

As variáveis de ambiente de novas tentativas são:

  • AWS_RETRY_MODE

  • AWS_MAX_ATTEMPTS

Para obter mais informações sobre variáveis de ambiente, consulte Configurando variáveis de ambiente para o AWS CLI.

Definindo uma configuração de nova tentativa em seu arquivo AWS de configuração

Para alterar sua configuração de nova tentativa, atualize seu arquivo de AWS configuração global. O local padrão para seu arquivo de AWS configuração é ~/.aws/config.

Veja a seguir um exemplo de um arquivo de AWS configuração:

[default] retry_mode = standard max_attempts = 6

Para obter mais informações sobre arquivos de configuração, consulte Configurações e configurações do arquivo de credenciais no AWS CLI.

Visualização de logs de novas tentativas

AWS CLI Ele usa a metodologia de repetição e o registro do Boto3. Você pode usar a opção --debug em qualquer comando para receber logs de depuração. Para obter informações sobre como usar a opção --debug, consulte Opções de linha de comando no AWS CLI.

Se você procurar “retry” em seus logs de depuração, encontrará as informações de repetição de que necessita. As entradas de log do cliente para tentativas de repetição dependem do modo de repetição ativado.

Modo herdado:

As mensagens de novas tentativas são geradas por botocore.retryhandler. Você verá uma de três mensagens:

  • No retry needed

  • Retry needed, action of: <action_name>

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

Modo padrão ou adaptativo:

As mensagens de novas tentativas são geradas por botocore.retries.standard. Você verá uma de três mensagens:

  • No retrying request

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

  • Retry needed but retry quota reached, not retrying request

Para ver o arquivo de definição completo das novas tentativas de botocore, consulte _retry.json no repositório botocore. GitHub