

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
<a name="kinesis-using-sdk-java-list-shards"></a>

Ein Datenstrom kann einen oder mehrere Shards aufweisen. Die empfohlene Methode zum Auflisten oder Abrufen der Shards aus einem Datenstream ist die Verwendung der API. [ListShards](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListShards.html) 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](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListShards.html)

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

Zum Ausführen des vorherigen Codebeispiels 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 der `ListShards` API können Sie den [ShardFilter](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ShardFilter.html)Parameter verwenden, um die Antwort der API herauszufiltern. Sie können jeweils nur einen Filter angeben. 

Wenn Sie den `ShardFilter` Parameter beim Aufrufen der ListShards API verwenden, `Type` ist dies 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 der 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 Typ `FROM_TIMESTAMP` angeben, werden alle Shards ab dem angegebenen Zeitstempel bis TIP zurückgegeben. 

**Wichtig**  
`DescribeStreamSummary`und `ListShard` APIs bieten eine skalierbarere Möglichkeit, Informationen über Ihre Datenströme abzurufen. Insbesondere die Kontingente für die DescribeStream API können zu Drosselungen führen. Weitere Informationen finden Sie unter [Kontingente und -Einschränkungen](service-sizes-and-limits.md). 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 die ListShards API sind dagegen spezifisch für einen einzelnen Datenstrom. Mit der ListShards API erhalten Sie also nicht nur höhere TPS-Werte, sondern die Aktion lässt sich auch besser skalieren, je mehr Datenströme Sie erstellen.  
Wir empfehlen Ihnen, all Ihre Produzenten und Verbraucher, die die DescribeStream API aufrufen, zu migrieren, sodass sie stattdessen die DescribeStreamSummary und die aufrufen. ListShard APIs Um diese Hersteller und Verbraucher zu identifizieren, empfehlen wir, Athena zum Analysieren von CloudTrail Protokollen zu verwenden, während Benutzeragenten für KPL und KCL in den API-Aufrufen erfasst werden.   

```
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 die `DescribeStream` API aufrufen, neu zu konfigurieren, sodass die 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. 