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à.
Verifica le tue autorizzazioni e richiedi input con dry run
È possibile utilizzare il DryRun parametro con le API del piano dati di Kinesis Data Streams per verificare di disporre delle autorizzazioni richieste e che i parametri della richiesta siano validi. Questa convalida avviene prima di eseguire l'operazione su una risorsa Amazon Kinesis Data Streams. Se imposti su DryRun true, Kinesis Data Streams verifica che disponi delle autorizzazioni IAM necessarie per accedere allo stream, controlla i parametri della richiesta e conferma l'esistenza della risorsa di destinazione. Esegue questi controlli senza eseguire l'operazione o leggere o scrivere alcun dato.
Se tutti i controlli vengono superati, l'API restituisce HTTP 400 con unDryRunOperationException, confermando che la richiesta sarebbe stata completata senza il DryRun parametro. Se un controllo fallisce, l'API restituisce lo stesso errore che restituirebbe l'operazione effettiva (ad esempio,AccessDeniedException). Puoi ricevere le seguenti eccezioni, tra le altre:
-
DryRunOperationException— La richiesta sarebbe stata completata senza ilDryRunparametro. -
AccessDeniedException— Il chiamante non dispone delle autorizzazioni IAM richieste per l'azione API. -
ResourceNotFoundException— Lo stream o il consumer specificato non esiste. -
ValidationException— Uno o più parametri di richiesta non sono validi (ad esempio, campi obbligatori mancanti, ARN non valido). -
InvalidArgumentException— Il valore di un parametro non è compreso nell'intervallo o non è supportato (ad esempio, timestamp futuro non valido ShardIteratorType).
Le richieste DryRun abilitate sono soggette a un limite di accelerazione dedicato di 1 transazione al secondo (TPS) per stream, separato dai normali limiti di throughput per shard dello stream. Questo limite è condiviso tra tutte le API dry-run supportate (PutRecord,,, PutRecords e) sullo stesso stream. GetRecords GetShardIterator SubscribeToShard Se superi questo limite, l'API restituisce un. ThrottlingException
Non sono previsti costi aggiuntivi per l'utilizzo del DryRun parametro. Le richieste con DryRun opzione abilitata vengono fatturate come le richieste equivalenti con opzione DryRun disattivata. Ad esempio, per PutRecord ePutRecords, ti viene addebitato in base alla dimensione del payload di input in modalità Provisioned. Eventuali addebiti per lo streaming e le ore di condivisione continuano a essere applicati. Per ulteriori informazioni sui prezzi, consulta Prezzi di Amazon Kinesis Data Streams
Nota
Il DryRun parametro convalida le autorizzazioni IAM per le azioni dell'API Kinesis Data Streams. Non convalida le autorizzazioni AWS Key Management Service chiave per gli stream crittografati. Se il tuo stream utilizza la crittografia lato server con una AWS KMS chiave gestita dal cliente, devi verificare separatamente che i produttori dispongano dell'kms:GenerateDataKeyautorizzazione e i consumatori abbiano kms:Decrypt l'autorizzazione sulla chiave. AWS KMS Per convalidare le AWS KMS autorizzazioni, consulta Verifica delle autorizzazioni nella Guida per gli sviluppatori. AWS Key Management Service
API supportate
Il DryRun parametro è supportato per le seguenti API:
AWS CloudTrail logging
Se abiliti gli eventi di dati in AWS CloudTrail, AWS CloudTrail registra le chiamate API del piano dati che utilizzano il DryRun parametro impostato su true. L' CloudTrail evento corrispondente include il DryRun parametro nella richiesta e il campo errorCode viene visualizzato DryRunOperationException per confermare che le convalide sono riuscite.
Utilizzando dry run con AWS CLI
Specifica la --dry-run bandiera nei tuoi AWS CLI comandi.
Esempio: test delle PutRecord autorizzazioni
aws kinesis put-record \ --stream-name <your-stream-name> \ --data <your-data-payload> \ --partition-key <your-partition-key> \ --dry-run
Se la richiesta avrebbe avuto successo, la risposta include il seguente messaggio: DryRunOperation validation succeeded while calling PutRecord operation.: Request would have succeeded, but DryRun flag is set.
Utilizzando dry run 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()); }