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 ListShards
API, 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 os tipos AT_TRIM_HORIZON
, FROM_TRIM_HORIZON
ou AT_LATEST
forem especificados, não há necessidade de especificar as propriedades opcionais ShardId
e Timestamp
.
Se o tipo AFTER_SHARD_ID
for especificado, também é necessário 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 os tipos AT_TIMESTAMP
ou FROM_TIMESTAMP_ID
forem especificados, também é necessário fornecer o valor para a propriedade opcional Timestamp
. Se o tipo AT_TIMESTAMP
for especificado, 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
DescribeStreamSummary
e 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.