Créez un flux à l'aide du APIs - Amazon Kinesis Data Streams

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez un flux à l'aide du APIs

Suivez les étapes ci-dessous pour créer votre flux de données Kinesis.

Créez le client Kinesis Data Streams

Afin de pouvoir travailler avec les flux de données Kinesis, vous devez créer un objet client. Le code Java suivant instancie un générateur client et l'utilise pour définir la région, les informations d'identification et la configuration du client. Il génère ensuite un objet client.

AmazonKinesisClientBuilder clientBuilder = AmazonKinesisClientBuilder.standard(); clientBuilder.setRegion(regionName); clientBuilder.setCredentials(credentialsProvider); clientBuilder.setClientConfiguration(config); AmazonKinesis client = clientBuilder.build();

Pour plus d'informations, consultez la rubrique Régions et points d'extrémité des flux de données Kinesis dans Références générales AWS.

Créez le stream

Maintenant que vous avez créé votre client Kinesis Data Streams, vous pouvez créer un flux à l'aide de la console ou par programmation. Pour créer un flux par programmation, instanciez un CreateStreamRequest objet et attribuez un nom au flux. Si vous souhaitez utiliser le mode provisionné, spécifiez le nombre de partitions que le flux doit utiliser.

  • À la demande :

    CreateStreamRequest createStreamRequest = new CreateStreamRequest(); createStreamRequest.setStreamName( myStreamName );
  • Provisionné :

    CreateStreamRequest createStreamRequest = new CreateStreamRequest(); createStreamRequest.setStreamName( myStreamName ); createStreamRequest.setShardCount( myStreamSize );

Le nom du flux identifie le flux. Le nom est limité au AWS compte utilisé par l'application. Il est également défini pour chaque région. En d'autres termes, deux flux provenant de deux AWS comptes différents peuvent porter le même nom, et deux flux appartenant au même AWS compte mais situés dans deux régions différentes peuvent porter le même nom, mais pas deux flux sur le même compte et dans la même région.

Le débit du flux est fonction du nombre de partitions. Pour augmenter le débit provisionné, vous avez besoin d'un plus grand nombre de partitions. L'augmentation du nombre de partitions augmente également le AWS coût du stream. Pour plus d'informations sur le calcul d'un nombre approprié de partitions pour votre application, consultez Choisissez le mode de capacité du flux de données.

Après avoir configuré l'createStreamRequestobjet, créez un flux en appelant la createStream méthode sur le client. Après avoir appelé createStream, attendez que le flux passe à l'état ACTIVE avant d'effectuer des opérations sur le flux. Pour vérifier l'état du flux, appelez la méthode describeStream. Cependant, describeStream lève une exception si le flux n'existe pas. Par conséquent, intégrez l'appel describeStream dans un bloc try/catch.

client.createStream( createStreamRequest ); DescribeStreamRequest describeStreamRequest = new DescribeStreamRequest(); describeStreamRequest.setStreamName( myStreamName ); long startTime = System.currentTimeMillis(); long endTime = startTime + ( 10 * 60 * 1000 ); while ( System.currentTimeMillis() < endTime ) { try { Thread.sleep(20 * 1000); } catch ( Exception e ) {} try { DescribeStreamResult describeStreamResponse = client.describeStream( describeStreamRequest ); String streamStatus = describeStreamResponse.getStreamDescription().getStreamStatus(); if ( streamStatus.equals( "ACTIVE" ) ) { break; } // // sleep for one second // try { Thread.sleep( 1000 ); } catch ( Exception e ) {} } catch ( ResourceNotFoundException e ) {} } if ( System.currentTimeMillis() >= endTime ) { throw new RuntimeException( "Stream " + myStreamName + " never went active" ); }