Elenco di flussi - Flusso di dati Amazon Kinesis

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Elenco di flussi

Come descritto nella sezione precedente, gli stream sono limitati all' AWS account associato alle AWS credenziali utilizzate per creare un'istanza del client Kinesis Data Streams e anche alla Regione specificata per il client. Un AWS account può avere più stream attivi contemporaneamente. È possibile creare un elenco dei flussi nella console del flusso di dati Kinesis, oppure in modo programmatico. Il codice in questa sezione mostra come elencare tutti gli stream del tuo AWS account.

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

Questo esempio di codice crea prima una nuova istanza di ListStreamsRequest e chiama il suo metodo setLimit per specificare che un massimo di 20 flussi deve essere restituito per ogni chiamata a listStreams. Se non si specifica un valore per setLimit, il flusso di dati Kinesis restituisce un numero di flussi minore o uguale al numero contenuto nell'account. Il codice quindi passa listStreamsRequest al metodo listStreams del client. Il valore restituito listStreams viene memorizzato in un oggetto ListStreamsResult. Il codice chiama il metodo getStreamNames su questo oggetto e memorizza i nomi di flusso restituiti nell'elenco streamNames. Si noti che il flusso di dati Kinesis può restituire un numero di flussi minore di quanto indicato dal limite specificato anche se non ci sono più flussi oltre quelli nell'account e nella regione. Per verificare di avere recuperato tutti i flussi, utilizzare il metodo getHasMoreStreams come descritto nel prossimo esempio di codice.

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

Questo codice chiama il metodo getHasMoreStreams su listStreamsRequest per controllare se sono disponibili flussi aggiuntivi oltre a quelli restituiti nella chiamata iniziale a listStreams. In tal caso, il codice chiama il metodo setExclusiveStartStreamName con il nome dell'ultimo flusso restituito nella precedente chiamata a listStreams. Il metodo setExclusiveStartStreamName fa si che la chiamata successiva a listStreams inizi dopo il flusso. Il gruppo di nomi di flusso restituiti dalla chiamata viene quindi aggiunto all'elenco streamNames. Questo processo continua finché tutti i nomi di flusso sono stati raccolti nell'elenco.

I flussi restituiti da listStreams possono essere in uno dei seguenti stati:

  • CREATING

  • ACTIVE

  • UPDATING

  • DELETING

È possibile controllare lo stato di un flusso utilizzando il metodo describeStream, come illustrato nella sezione precedente Creazione di un flusso tramite le API.