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.
Pruebe sus permisos y solicite entradas con un simulacro
Puede usar el DryRun parámetro con las API del plano de datos de Kinesis Data Streams para verificar que tiene los permisos necesarios y que los parámetros de su solicitud son válidos. Esta validación se realiza antes de ejecutar la operación en un recurso de Amazon Kinesis Data Streams. Cuando se establece DryRun en true, Kinesis Data Streams valida que tiene los permisos de IAM necesarios para acceder a la transmisión, comprueba los parámetros de la solicitud y confirma que el recurso de destino existe. Realiza estas comprobaciones sin ejecutar la operación ni leer ni escribir ningún dato.
Si se aprueban todas las comprobaciones, la API devuelve el HTTP 400 con unDryRunOperationException, confirmando que la solicitud se habría realizado correctamente sin el DryRun parámetro. Si alguna de las comprobaciones falla, la API devuelve el mismo error que arrojaría la operación real (por ejemplo,AccessDeniedException). Puedes recibir las siguientes excepciones, entre otras:
-
DryRunOperationException— La solicitud se habría realizado correctamente sin elDryRunparámetro. -
AccessDeniedException— La persona que llama no tiene los permisos de IAM necesarios para la acción de la API. -
ResourceNotFoundException— La transmisión o el consumidor especificados no existen. -
ValidationException— Uno o más parámetros de la solicitud no son válidos (por ejemplo, faltan campos obligatorios o ARN con formato incorrecto). -
InvalidArgumentException— El valor de un parámetro está fuera de rango o no es compatible (por ejemplo, una marca de tiempo futura no válida ShardIteratorType).
Las solicitudes con la DryRun opción habilitada están sujetas a un límite específico de 1 transacción por segundo (TPS) por transmisión, independiente de los límites de rendimiento por fragmento normales de la transmisión. Este límite se comparte entre todas las API de ejecución en seco compatibles (PutRecord, PutRecords GetRecordsGetShardIterator, ySubscribeToShard) en la misma transmisión. Si superas este límite, la API devuelve un. ThrottlingException
No hay ningún cargo adicional por usar el DryRun parámetro. Las solicitudes con la DryRun opción habilitada se facturan igual que la solicitud equivalente con la opción DryRun deshabilitada. Por ejemplo, para PutRecord yPutRecords, se le cobra en función del tamaño de la carga útil de entrada en el modo aprovisionado. Se seguirán cobrando los cargos por las horas de transmisión y de los fragmentos. Para obtener más información acerca de los precios, consulte Precios de Amazon Kinesis Data Streams
nota
El DryRun parámetro valida los permisos de IAM para las acciones de la API de Kinesis Data Streams. No valida los permisos AWS Key Management Service clave para las transmisiones cifradas. Si tu transmisión utiliza el cifrado del lado del servidor con una AWS KMS clave gestionada por el cliente, debes verificar por separado que tus productores tienen kms:GenerateDataKey permiso y que tus consumidores tienen kms:Decrypt permiso sobre la AWS KMS clave. Para validar AWS KMS los permisos, consulta Cómo probar tus permisos en la Guía para AWS Key Management Service desarrolladores.
API de compatibles
El DryRun parámetro es compatible con las siguientes API:
AWS CloudTrail registrar
Si habilita los eventos de datos en AWS CloudTrail, AWS CloudTrail registra las llamadas a la API del plano de datos que utilizan el DryRun parámetro establecido en true. El CloudTrail evento correspondiente incluye el DryRun parámetro en la solicitud y el campo ErrorCode muestra DryRunOperationException si las validaciones se han realizado correctamente.
Si se utiliza un método de ejecución en seco con el AWS CLI
Especifique la --dry-run bandera en sus AWS CLI comandos.
Ejemplo: probar PutRecord los permisos
aws kinesis put-record \ --stream-name <your-stream-name> \ --data <your-data-payload> \ --partition-key <your-partition-key> \ --dry-run
Si la solicitud se hubiera realizado correctamente, la respuesta incluye el siguiente mensaje: DryRunOperation validation succeeded while calling PutRecord operation.: Request would have succeeded, but DryRun flag is set.
Uso de la operación en seco con AWS SDK
Python (Boto3)
import boto3 from botocore.exceptions import ClientError kinesis = boto3.client('kinesis') try: kinesis.put_record( StreamName='my-stream', Data=b'test-data', PartitionKey='my-partition-key', DryRun=True ) except ClientError as e: if e.response['Error']['Code'] == 'DryRunOperationException': print('SUCCESS: Request would have succeeded') else: print(f'FAILURE: {e.response["Error"]["Code"]}')
Java (AWS SDK for Java 2.x)
PutRecordRequest request = PutRecordRequest.builder() .streamName("my-stream") .data(SdkBytes.fromUtf8String("test-data")) .partitionKey("my-partition-key") .dryRun(true) .build(); try { kinesisClient.putRecord(request); } catch (DryRunOperationException e) { System.out.println("SUCCESS: " + e.getMessage()); } catch (AccessDeniedException e) { System.out.println("FAILURE: " + e.getMessage()); }