Listar streams - 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 streams

Conforme descrito na seção anterior, os fluxos são delimitados pela conta da AWS associada às credenciais da AWS usadas para criar a instância do cliente do Kinesis Data Streams, e também pela região especificada para o cliente. Uma conta da AWS pode ter vários fluxos ativos ao mesmo tempo. Você pode listar os fluxos no console do Kinesis Data Streams ou de forma programática. O código nesta seção mostra como listar todos os fluxos em sua conta da AWS.

ListStreamsRequest listStreamsRequest = new ListStreamsRequest(); listStreamsRequest.setLimit(20); ListStreamsResult listStreamsResult = client.listStreams(listStreamsRequest); List<String> streamNames = listStreamsResult.getStreamNames();

Este exemplo de código primeiro cria uma nova instância de ListStreamsRequest e chama seu método setLimit para especificar que um máximo de 20 streams devem ser retornados para cada chamada a listStreams. Se você não especificar um valor para setLimit, o Kinesis Data Streams retornará um número de fluxos menor ou igual ao número na conta. Em seguida, o código passa listStreamsRequest ao método listStreams do cliente. O valor de retorno listStreams é armazenado em um objeto ListStreamsResult. O código chama o método getStreamNames para esse objeto e armazena os nomes de stream retornados na lista streamNames. Observe que o Kinesis Data Streams pode retornar menos fluxos do que o limite especificado, mesmo quando houver um número maior de fluxos na conta e na região. Para garantir que você recupere todos os streams, use o método getHasMoreStreams como descrito no próximo exemplo de código.

while (listStreamsResult.getHasMoreStreams()) { if (streamNames.size() > 0) { listStreamsRequest.setExclusiveStartStreamName(streamNames.get(streamNames.size() - 1)); } listStreamsResult = client.listStreams(listStreamsRequest); streamNames.addAll(listStreamsResult.getStreamNames()); }

Esse código chama o método getHasMoreStreams para listStreamsRequest a fim de verificar se há streams adicionais disponíveis além dos que foram retornados na chamada inicial a listStreams. Se houver, o código chamará o método setExclusiveStartStreamName com o nome do último stream que foi retornado na chamada anterior a listStreams. O método setExclusiveStartStreamName faz com que a próxima chamada a listStreams comece depois desse stream. Em seguida, o grupo de nomes de stream retornados pela chamada é adicionado à lista streamNames. Esse processo continua até que todos os nomes de stream tenham sido coletados na lista.

Os streams retornados por listStreams podem estar em um dos seguintes estados:

  • CREATING

  • ACTIVE

  • UPDATING

  • DELETING

Você pode verificar o estado de um stream usando o método describeStream, como mostrado na seção anterior, Criar um fluxo usando as APIs.