

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á.

# Erros de exceção de throughput provisionada
<a name="kinesis-fis-provisioned-throughput"></a>

Os erros de exceção de throughput provisionado excedido (HTTP 400) ocorrem quando a taxa de solicitação de um fluxo do Kinesis ultrapassa os limites de throughput de um ou mais fragmentos. Cada fragmento tem limites específicos de capacidade de leitura e gravação e exceder esses limites aciona essa exceção. Os cenários que levam a essa exceção incluem: picos repentinos na ingestão ou no consumo de dados, capacidade insuficiente de fragmentos para o volume de dados processado ou distribuição desigual das chaves de partição.

**Recomendações para lidar com exceções**
+ Implemente mecanismos exponenciais de espera e de novas tentativas.
+ Aumente o número de fragmentos para acomodar uma maior throughput.
+ Assegure que haja uma distribuição adequada das chaves de partição.
+ Monitore as métricas do fluxo.

Além disso, o uso do modo de capacidade sob demanda do Kinesis ajuda a ajustar automaticamente workloads e minimizar a ocorrência dessa exceção. Para ter mais informações, consulte [O que é o AWS Fault Injection Service?](https://docs.aws.amazon.com/fis/latest/userguide/what-is.html)

**nota**  
Os problemas de distribuição imprópria estão fora da capacidade de escalonamento automático no modo sob demanda.

**Para realizar um experimento básico**

1. Use métricas básicas: registre os padrões de throughput normais antes do teste.

1. Crie um experimento: use a ação `aws:kinesis:inject-api-provisioned-throughput-exception`.

1. Configure a intensidade: comece com um controle de utilização de solicitações de 25%.

1. Monitore as respostas: verifique a lógica de novas tentativas com espera exponencial.

1. Valide o ajuste de escala: confirme se o ajuste de escala automático aciona a ativação.

1. Verifique os alarmes: confira se os alarmes `CloudWatch` estão funcionando conforme o esperado.

As aplicações devem implementar estratégias de espera adequadas, monitorar as métricas `WriteProvisionedThroughputExceeded` e `ReadProvisionedThroughputExceeded` e acionar o ajuste de escala de fragmentos quando apropriado.

**Detalhes da ação**
+ **Tipo de recurso**: ARN do perfil do IAM
+ **Operações de destino**: `PutRecord`, `PutRecords`, `GetRecords`
+ ****Código de erro****: `ProvisionedThroughputExceededException` (HTTP 400)
+ ****Descrição****: simula cenários em que a taxa de solicitação excede os limites de capacidade de fragmento, testando o controle de utilização de aplicações e ajustando a escala das respostas.

**Parâmetros**
+ **ARN do perfil do IAM**: perfil usado por sua aplicação para as operações do Kinesis Data Streams.
+ **Operações**: operações de destino: `PutRecord`, `PutRecords`, `GetRecords`.
+ **Lista de recursos**: nomes específicos do fluxo ou identificadores de fragmentos.
+ **Duração**: duração do experimento, que varia de um minuto a 12 horas. Na AWS FIS API, o valor é uma string no formato ISO 8601. Por exemplo, PT1 M representa um minuto. No AWS FIS console, você insere o número de segundos, minutos ou horas.
+ **Intensidade**: a porcentagem de solicitações a serem submetidas a controle de utilização.

**Permissões obrigatórias**
+ `kinesis:InjectApiError`

Exemplo de modelo de experimento

 O exemplo a seguir mostra uma exceção de taxa de transferência provisionada para todas as solicitações de até 5 streams do Kinesis Data com a tag especificada. AWS FIS seleciona os fluxos a serem afetados aleatoriamente. Após 5 minutos, a falha é removida.

```
{
    "description": "Kinesis stream experiment",
    "targets": {
        "KinesisStreams-Target-1": {
            "resourceType": "aws:kinesis:stream",
            "resourceTags": {
                   "tag-key": "tag-value"
            },
            "selectionMode": "COUNT(5)"
        }
    },
    "actions": {
         "kinesis": {
              "actionId": "aws:kinesis:stream-provisioned-throughput-exception",
              "description": "my-stream",
              "parameters": {
                   "duration": "PT5M",
                   "percentage": "100",
                   "service": "kinesis"
              },
              "targets": {
                    "KinesisStreams": "KinesisStreams-Target-1"
              }
         }
   },
   "stopConditions": [
         {
              "source": "none"
         }
   ],
   "roleArn": "arn:aws:iam::111122223333:role/role-name",
   "tags": {},
   "experimentOptions": {
       "accountTargeting": "single-account",
       "emptyTargetResolutionMode": "fail"
   }    
}
```

Exemplo de permissões do perfil do experimento

A permissão a seguir permite que você execute as ações `aws:kinesis:stream-provisioned-throughput-exception` e `aws:kinesis:stream-expired-iterator-exception` em um fluxo específico que afeta 50% das solicitações.