View a markdown version of this page

Testen Sie Ihre Berechtigungen und fordern Sie Eingaben mit einem Probelauf an - Amazon Kinesis Data Streams

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Testen Sie Ihre Berechtigungen und fordern Sie Eingaben mit einem Probelauf an

Sie können den DryRun Parameter mit Kinesis Data Streams-Datenebenen-APIs verwenden, um zu überprüfen, ob Sie über die erforderlichen Berechtigungen verfügen und ob Ihre Anforderungsparameter gültig sind. Diese Überprüfung erfolgt, bevor Sie den Vorgang auf einer Amazon Kinesis Data Streams-Ressource ausführen. Wenn Sie DryRun den Wert auf true setzen, überprüft Kinesis Data Streams, ob Sie über die erforderlichen IAM-Berechtigungen für den Zugriff auf Ihren Stream verfügen, überprüft Ihre Anforderungsparameter und bestätigt, dass die Zielressource existiert. Es führt diese Prüfungen durch, ohne den Vorgang auszuführen oder Daten zu lesen oder zu schreiben.

Wenn alle Prüfungen erfolgreich sind, gibt die API HTTP 400 mit einem zurück DryRunOperationException und bestätigt damit, dass die Anfrage ohne den DryRun Parameter erfolgreich gewesen wäre. Schlägt eine Prüfung fehl, gibt die API denselben Fehler zurück, den der eigentliche Vorgang zurückgeben würde (z. B.AccessDeniedException). Sie können unter anderem die folgenden Ausnahmen erhalten:

  • DryRunOperationException— Die Anfrage wäre ohne den DryRun Parameter erfolgreich gewesen.

  • AccessDeniedException— Der Anrufer hat nicht die erforderlichen IAM-Berechtigungen für die API-Aktion.

  • ResourceNotFoundException— Der angegebene Stream oder Consumer existiert nicht.

  • ValidationException— Ein oder mehrere Anforderungsparameter sind ungültig (z. B. fehlende Pflichtfelder, falsch formatierter ARN).

  • InvalidArgumentException— Ein Parameterwert liegt außerhalb des zulässigen Bereichs oder wird nicht unterstützt (z. B. ungültig ShardIteratorType, zukünftiger Zeitstempel).

Für Anfragen mit DryRun aktivierter Option gilt ein eigenes Drossellimit von 1 Transaktion pro Sekunde (TPS) pro Stream, unabhängig von den normalen Durchsatzgrenzen des Streams pro Shard. Dieses Limit gilt für alle unterstützten Dry-Run-APIs (PutRecord, PutRecords GetRecordsGetShardIterator, undSubscribeToShard) im selben Stream. Wenn Sie dieses Limit überschreiten, gibt die API einen zurück. ThrottlingException

Für die Verwendung des DryRun Parameters fallen keine zusätzlichen Gebühren an. Anfragen mit DryRun aktivierter Funktion werden genauso abgerechnet wie entsprechende Anfragen mit DryRun deaktivierter Option. Beispiel: Für PutRecord und PutRecords werden Ihnen die Gebühren auf der Grundlage der Größe der eingegebenen Nutzlast im Modus „Bereitgestellt“ in Rechnung gestellt. Alle Gebühren für den Stream und die Shard-Stunden fallen weiterhin an. Weitere Informationen zur Preisgestaltung finden Sie unter Amazon Kinesis Data Streams  – Preise.

Anmerkung

Der DryRun Parameter validiert die IAM-Berechtigungen für die Kinesis Data Streams-API-Aktionen. Er validiert keine AWS Key Management Service Schlüsselberechtigungen für verschlüsselte Streams. Wenn Ihr Stream serverseitige Verschlüsselung mit einem vom Kunden verwalteten AWS KMS Schlüssel verwendet, müssen Sie separat überprüfen, ob Ihre Produzenten und Ihre Verbraucher die kms:Decrypt Erlaubnis für den AWS KMS Schlüssel haben. kms:GenerateDataKey Informationen zur Überprüfung von AWS KMS Berechtigungen findest du unter Testen deiner Berechtigungen im AWS Key Management Service Entwicklerhandbuch.

Unterstützte APIs

Der DryRun Parameter wird für die folgenden APIs unterstützt:

AWS CloudTrail Protokollierung

Wenn Sie Datenereignisse in aktivieren AWS CloudTrail, AWS CloudTrail protokolliert API-Aufrufe der Datenebene, die den auf true gesetzten DryRun Parameter verwenden. Das entsprechende CloudTrail Ereignis beinhaltet den DryRun Parameter in der Anforderung, und das Feld errorCode wird DryRunOperationException für erfolgreiche Validierungen angezeigt.

Im Probelauf mit dem AWS CLI

Geben Sie das --dry-run Flag in Ihren AWS CLI Befehlen an.

Beispiel: PutRecord Berechtigungen testen

aws kinesis put-record \ --stream-name <your-stream-name> \ --data <your-data-payload> \ --partition-key <your-partition-key> \ --dry-run

Wenn die Anfrage erfolgreich gewesen wäre, enthält die Antwort die folgende Meldung: DryRunOperation validation succeeded while calling PutRecord operation.: Request would have succeeded, but DryRun flag is set.

Im Probelauf verwenden mit AWS SDKs

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()); }