翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
シャードを一覧表示する
データストリームは 1 つ以上のシャードを持つことができます。データストリームからシャードを一覧表示または取得するための推奨方法は、 ListShards を使用することですAPI。次の例では、データストリーム内のシャードを一覧表示する方法を示します。この例で使用されているメインオペレーションと、オペレーションに設定できるすべてのパラメータの詳細については、「」を参照してください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()); } } }
前のコード例を実行するには、次のようなPOMファイルを使用できます。
<?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>
ではListShards
API、 ShardFilterパラメータを使用して のレスポンスを除外できますAPI。一度に 1 つのフィルターしか指定できません。
を呼び出す ListShardsときに ShardFilter
パラメータを使用する場合API、 Type
は必須プロパティであり、指定する必要があります。AT_TRIM_HORIZON
、FROM_TRIM_HORIZON
、または AT_LATEST
タイプを指定する場合は、ShardId
または Timestamp
のオプションのプロパティを指定する必要はありません。
AFTER_SHARD_ID
タイプを指定する場合は、オプションの ShardId
プロパティの値も指定する必要があります。ShardId
プロパティは、 の ExclusiveStartShardId
パラメータと同じ機能です ListShards API。ShardId
プロパティが指定されている場合、レスポンスには、指定した ShardId
の直後に ID が続くシャードで始まるシャードが含まれます。
AT_TIMESTAMP
または FROM_TIMESTAMP_ID
タイプを指定する場合は、オプションの Timestamp
プロパティの値も指定する必要があります。AT_TIMESTAMP
タイプを指定する場合は、指定されたタイムスタンプで開いていたすべてのシャードが返されます。FROM_TIMESTAMP
タイプを指定すると、指定されたタイムスタンプから に始まるすべてのシャードTIPが返されます。
重要
DescribeStreamSummary
および は、データストリームに関する情報を取得するよりスケーラブルな方法ListShard
APIsを提供します。具体的には、 のクォータによって DescribeStream APIスロットリングが発生する可能性があります。詳細については、「クォータと制限」を参照してください。また、DescribeStream
クォータは AWS 、アカウント内のすべてのデータストリームとやり取りするすべてのアプリケーション間で共有されることに注意してください。一方 ListShards API、 のクォータは、単一のデータストリームに固有です。したがって、 TPSで上位になるだけでなく ListShards API、より多くのデータストリームを作成すると、アクションのスケーリングも向上します。
を呼び出すすべてのプロデューサーとコンシューマーを移行して、 DescribeStream API代わりに DescribeStreamSummary と を呼び出すことをお勧めします ListShard APIs。これらのプロデューサーとコンシューマーを特定するには、Athena を使用して CloudTrail ログを のユーザーエージェントとして解析KPLしKCL、 API 呼び出しでキャプチャすることをお勧めします。
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
また、 を呼び出す AWS Lambda および Amazon Firehose と Kinesis Data Streams の統合DescribeStream
APIは、統合が代わりに DescribeStreamSummary
および を呼び出すように再設定することをお勧めしますListShards
。具体的には、 AWS Lambda の場合は、イベントソースマッピングを更新する必要があります。Amazon Firehose の場合、対応するIAMアクセス許可を更新して、アクセスListShards
IAM許可を含める必要があります。