Listar fragmentos - Amazon Kinesis Data Streams

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Listar fragmentos

Um fluxo de dados pode ter um ou mais fragmentos. O método recomendado para listar ou recuperar os fragmentos de um fluxo de dados é usar o. ListShardsAPI O exemplo a seguir mostra como obter uma lista de fragmentos em um fluxo de dados. Para obter uma descrição completa da operação principal usada neste exemplo e de todos os parâmetros que você pode definir para a operação, consulte 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()); } } }

Para executar o exemplo de código anterior, você pode usar um POM arquivo como o seguinte.

<?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>

Com o ListShardsAPI, você pode usar o ShardFilterparâmetro para filtrar a resposta doAPI. Só é possível especificar um filtro de cada vez.

Se você usar o ShardFilter parâmetro ao invocar o ListShardsAPI, a Type é a propriedade necessária e deve ser especificada. Se você especificar os tipos AT_TRIM_HORIZON, FROM_TRIM_HORIZON ou AT_LATEST, não precisará especificar as propriedades opcionais ShardId e Timestamp.

Se você especificar o tipo AFTER_SHARD_ID, também deverá fornecer o valor para a propriedade opcional ShardId. A ShardId propriedade é idêntica em termos de funcionalidade ao ExclusiveStartShardId parâmetro do ListShards API. Quando a propriedade ShardId é especificada, a resposta inclui os fragmentos a partir daquele cuja ID segue imediatamente a ShardId fornecida.

Se você especificar o tipo AT_TIMESTAMP ou FROM_TIMESTAMP_ID, também deverá fornecer o valor para a propriedade opcional Timestamp. Se você especificar o tipo AT_TIMESTAMP, todos os fragmentos abertos no timestamp fornecido serão retornados. Se você especificar o FROM_TIMESTAMP tipo, todos os fragmentos a partir do carimbo de data/hora fornecido serão retornadosTIP.

Importante

DescribeStreamSummarye ListShard APIs forneça uma forma mais escalável de recuperar informações sobre seus fluxos de dados. Mais especificamente, as cotas do DescribeStream API podem causar limitação. Para obter mais informações, consulte Cotas e limites. Observe também que as DescribeStream cotas são compartilhadas em todos os aplicativos que interagem com todos os fluxos de dados em sua AWS conta. As cotas para o ListShards API, por outro lado, são específicas para um único fluxo de dados. Portanto, você não apenas aumenta TPS com o ListShards API, mas a ação é melhor dimensionada à medida que você cria mais fluxos de dados.

Recomendamos que você migre todos os produtores e consumidores que ligam DescribeStream API para o para, em vez disso, invocar o DescribeStreamSummary e o. ListShard APIs Para identificar esses produtores e consumidores, recomendamos usar o Athena para analisar CloudTrail registros como agentes de usuário KPL e KCL capturados nas chamadas. 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

Também recomendamos que as integrações do AWS Lambda e do Amazon Firehose com o Kinesis Data Streams que invocam o sejam reconfiguradas para que, em vez disso, as integrações invoquem DescribeStream API e. DescribeStreamSummary ListShards Especificamente, para o AWS Lambda, você deve atualizar o mapeamento da fonte do evento. Para o Amazon Firehose, as IAM permissões correspondentes devem ser atualizadas para que incluam a ListShards IAM permissão.