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.
Shards auflisten
Ein Datenstrom kann einen oder mehrere Shards aufweisen. Die empfohlene Methode zum Auflisten oder Abrufen der Shards aus einem Datenstream ist die Verwendung von. ListShardsAPI Das folgende Beispiel zeigt, wie Sie eine Liste der Shards in einem Datenstrom erhalten. Eine vollständige Beschreibung der in diesem Beispiel verwendeten Hauptoperation und aller Parameter, die Sie für die Operation festlegen können, finden Sie unter. ListShards
import software.amazon.awssdk.services.kinesis.KinesisAsyncClient; import software.amazon.awssdk.services.kinesis.model.ListShardsRequest; import software.amazon.awssdk.services.kinesis.model.ListShardsResponse; import java.util.concurrent.TimeUnit; public class ShardSample { public static void main(String[] args) { KinesisAsyncClient client = KinesisAsyncClient.builder().build(); ListShardsRequest request = ListShardsRequest .builder().streamName("myFirstStream") .build(); try { ListShardsResponse response = client.listShards(request).get(5000, TimeUnit.MILLISECONDS); System.out.println(response.toString()); } catch (Exception e) { System.out.println(e.getMessage()); } } }
Um das vorherige Codebeispiel auszuführen, können Sie eine POM Datei wie die folgende verwenden.
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>kinesis.data.streams.samples</groupId> <artifactId>shards</artifactId> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>kinesis</artifactId> <version>2.0.0</version> </dependency> </dependencies> </project>
Mit dem ListShards
API können Sie den ShardFilterParameter verwenden, um die Antwort von herauszufilternAPI. Sie können jeweils nur einen Filter angeben.
Wenn Sie den ShardFilter
Parameter beim Aufrufen von verwenden ListShardsAPI, Type
ist das die erforderliche Eigenschaft und muss angegeben werden. Wenn Sie die Typen AT_TRIM_HORIZON
, FROM_TRIM_HORIZON
, oder AT_LATEST
angeben, müssen Sie weder die optionalen Eigenschaften ShardId
noch Timestamp
angeben.
Wenn Sie den AFTER_SHARD_ID
-Typ angeben, müssen Sie auch den Wert für die optionale ShardId
-Eigenschaft angeben. Die ShardId
Eigenschaft ist in ihrer Funktionalität identisch mit dem ExclusiveStartShardId
Parameter von. ListShards API Wenn eine Eigenschaft ShardId
angegeben ist, enthält die Antwort die Shards, beginnend mit dem Shard, dessen ID unmittelbar auf das von Ihnen angegebene ShardId
folgt.
Wenn Sie den Typ AT_TIMESTAMP
oder FROM_TIMESTAMP_ID
angeben, müssen Sie auch den Wert für die optionale Timestamp
-Eigenschaft angeben. Wenn Sie den Typ AT_TIMESTAMP
angeben, werden alle Shards zurückgegeben, die zum angegebenen Zeitstempel geöffnet waren. Wenn Sie den FROM_TIMESTAMP
Typ angeben, werden alle Shards, beginnend mit dem angegebenen Zeitstempel bis, zurückgegebenTIP.
Wichtig
DescribeStreamSummary
und ListShard
APIs bieten eine skalierbarere Methode zum Abrufen von Informationen über Ihre Datenströme. Insbesondere die Kontingente für DescribeStream API können zu Drosselungen führen. Weitere Informationen finden Sie unter Kontingente und -Einschränkungen. Beachten Sie auch, dass DescribeStream
Kontingente von allen Anwendungen gemeinsam genutzt werden, die mit allen Datenströmen in Ihrem AWS Konto interagieren. Die Kontingente für sind dagegen spezifisch für einen einzelnen Datenstrom. ListShards API Sie werden also nicht nur höher TPS ListShards API, sondern die Aktion skaliert auch besser, je mehr Datenströme Sie erstellen.
Wir empfehlen Ihnen, all Ihre Produzenten und Verbraucher DescribeStream API zu migrieren, die das aufrufen, stattdessen das DescribeStreamSummary und das ListShard APIs aufrufen. Um diese Hersteller und Verbraucher zu identifizieren, empfehlen wir, Athena zu verwenden, um CloudTrail Protokolle als Benutzeragenten für die Anrufe zu analysieren KPL und KCL sie bei den API Anrufen zu erfassen.
SELECT useridentity.sessioncontext.sessionissuer.username, useridentity.arn,eventname,useragent, count(*) FROM cloudtrail_logs WHERE Eventname IN ('DescribeStream') AND eventtime BETWEEN '' AND '' GROUP BY useridentity.sessioncontext.sessionissuer.username,useridentity.arn,eventname,useragent ORDER BY count(*) DESC LIMIT 100
Wir empfehlen außerdem, die AWS Lambda- und Amazon Firehose-Integrationen mit Kinesis Data Streams, die das aufrufen, neu zu konfigurieren, sodass die DescribeStream
API Integrationen stattdessen und aufrufen. DescribeStreamSummary
ListShards
Insbesondere für AWS Lambda müssen Sie Ihre Ereignisquellenzuordnung aktualisieren. Für Amazon Firehose müssen die entsprechenden IAM Berechtigungen aktualisiert werden, sodass sie die ListShards
IAM Berechtigung enthalten.