

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Errores de excepción de rendimiento aprovisionado
<a name="kinesis-fis-provisioned-throughput"></a>

Los errores de excepción de rendimiento aprovisionado superado (HTTP 400) se producen cuando la tasa de solicitudes de un flujo de Kinesis supera los límites de rendimiento de una o más particiones. Cada partición tiene límites de capacidad de lectura y escritura específicos, y si se superan, se produce esta excepción. Las situaciones que conducen a esta excepción son: aumentos repentinos en el consumo o la ingesta de datos, una capacidad de partición insuficiente para el volumen de datos que se está procesando o una distribución desigual de las claves de partición.

**Recomendaciones para gestionar las excepciones**
+ Implemente mecanismos de retroceso exponencial y reintento.
+ Aumente el número de particiones para lograr un mayor rendimiento.
+ Asegúrese de que haya una distribución adecuada de las claves de partición.
+ Supervise las métricas de flujo.

Además, el uso del modo de capacidad bajo demanda de Kinesis permite ajustar automáticamente las cargas de trabajo y minimizar la aparición de esta excepción. Para obtener más información, consulte [¿Qué es AWS Fault Injection Service?](https://docs.aws.amazon.com/fis/latest/userguide/what-is.html)

**nota**  
Los problemas de distribución inadecuados están fuera de la capacidad de escalado automático del modo bajo demanda.

**Cómo realizar un experimento básico**

1. Utilice métricas de referencia: registre los patrones de rendimiento normales antes de realizar la prueba.

1. Cree un experimento: utilice la acción `aws:kinesis:inject-api-provisioned-throughput-exception`.

1. Configure la intensidad: comience con una limitación del 25 % de las solicitudes.

1. Supervise las respuestas: verifique la lógica de reintento con una reducción exponencial.

1. Valide el escalado: confirme que el escalado automático desencadene la activación.

1. Compruebe las alarmas: asegúrese de que las alarmas de `CloudWatch` funcionen según lo previsto.

Las aplicaciones deben implementar las estrategias, la supervisión de `WriteProvisionedThroughputExceeded` y las métricas de `ReadProvisionedThroughputExceeded`, y activar el escalado de las particiones cuando sea apropiado.

**Detalles de la acción**
+ **Tipo de recurso**: ARN del rol de IAM
+ **Operaciones de destino**: `PutRecord`, `PutRecords`, `GetRecords`
+ ****Código de error****: `ProvisionedThroughputExceededException` (HTTP 400)
+ ****Descripción****: simula escenarios en los que la tasa de solicitudes supera los límites de capacidad de la partición, pone a prueba la limitación de las aplicaciones y escala las respuestas

**Parameters**
+ **ARN del rol de IAM**: el rol que utiliza su aplicación para las operaciones de Kinesis Data Streams
+ **Operaciones**: operaciones de destino: `PutRecord`, `PutRecords`, `GetRecords`
+ **Lista de recursos**: los nombres de flujo específicos o los identificadores de particiones
+ **Duración**: la duración del experimento, que es de un minuto a 12 horas En la AWS FIS API, el valor es una cadena en formato ISO 8601. Por ejemplo, PT1 M representa un minuto. En la AWS FIS consola, se introduce el número de segundos, minutos u horas.
+ **Intensidad**: el porcentaje de solicitudes para limitar

**Permisos necesarios**
+ `kinesis:InjectApiError`

Ejemplo de plantilla de experimento

 El siguiente ejemplo muestra una excepción de rendimiento aprovisionada para todas las solicitudes de hasta 5 transmisiones de Kinesis Data con la etiqueta especificada. AWS FIS selecciona aleatoriamente las transmisiones a las que desea afectar. El error se elimina después de 5 minutos.

```
{
    "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"
   }    
}
```

Ejemplo de permisos de roles de experimentos

El siguiente permiso permite ejecutar las acciones `aws:kinesis:stream-provisioned-throughput-exception` y `aws:kinesis:stream-expired-iterator-exception` en un flujo específico que afecta al 50 % de las solicitudes.