Création de flux de données à l'aide de l'API Kinesis Data Streams et de AWS SDK for PHP la version 3 - AWS SDK for PHP

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éation de flux de données à l'aide de l'API Kinesis Data Streams et de AWS SDK for PHP la version 3

Amazon Kinesis Data Streams vous permet d'envoyer des données en temps réel. Créez un producteur de données avec Kinesis Data Streams qui fournit les données à la destination configurée chaque fois que vous ajoutez des données.

Pour plus d'informations, consultez la section Création et gestion de flux dans le manuel Amazon Kinesis Developer Guide.

Les exemples suivants montrent comment :

  • Créez un flux de données à l'aide de CreateAlias.

  • Obtenez des informations sur un seul flux de données à l'aide de DescribeStream.

  • Répertoriez les flux de données existants en utilisant ListStreams.

  • Envoyez des données vers un flux de données existant à l'aide de PutRecord.

  • Supprimez un flux de données à l'aide de DeleteStream.

Tous les exemples de code pour le AWS SDK for PHP sont disponibles ici GitHub.

Informations d’identification

Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dansInformations d'identification. Importez ensuite leAWS SDK for PHP, comme décrit dansUtilisation de base.

Pour plus d'informations sur l'utilisation d'Amazon Kinesis Developer Guide, consultez le Amazon Kinesis Data Streams Developer Guide.

Création d'un flux de données à l'aide d'un flux de données Kinesis

Établissez un flux de données Kinesis dans lequel vous pouvez envoyer des informations à traiter par Kinesis à l'aide de l'exemple de code suivant. Pour en savoir plus sur la création et la mise à jour de flux de données, consultez le guide du développeur Amazon Kinesis.

Pour créer un flux de données Kinesis, utilisez l'CreateStreamopération.

Importations

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Exemple de code

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $shardCount = 2; $name = "my_stream_name"; try { $result = $kinesisClient->createStream([ 'ShardCount' => $shardCount, 'StreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Récupérer un flux de données

Obtenez des détails sur un flux de données existant à l’aide de l’exemple de code suivant. Par défaut, cela renvoie des informations sur les 10 premières partitions connectées au flux de données Kinesis spécifié. N'oubliez pas StreamStatus de vérifier la réponse avant d'écrire des données dans un flux de données Kinesis.

Pour récupérer les informations relatives à un flux de données Kinesis spécifique, utilisez l'DescribeStreamopération.

Importations

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Exemple de code

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $name = "my_stream_name"; try { $result = $kinesisClient->describeStream([ 'StreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Répertorier les flux de données existants connectés à Kinesis

Répertoriez les 10 premiers flux de données provenant Compte AWS de la AWS région sélectionnée. Utilisez le `HasMoreStreams retourné pour déterminer si plusieurs flux sont associés à votre compte.

Pour répertorier vos flux de données Kinesis, utilisez l'ListStreamsopération.

Importations

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Exemple de code

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); try { $result = $kinesisClient->listStreams(); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Envoyer des données vers un flux de données existant

Une fois qu’un flux de données est créé, utilisez l’exemple suivant pour envoyer des données. Avant d’y envoyer des données, utilisez DescribeStream pour vérifier si les données StreamStatus sont actives.

Pour écrire un seul enregistrement de données dans un flux de données Kinesis, utilisez l'PutRecordopération. Pour écrire jusqu'à 500 enregistrements dans un flux de données Kinesis, utilisez l'PutRecordsopération.

Importations

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Exemple de code

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-1' ]); $name = "my_stream_name"; $content = '{"ticker_symbol":"QXZ", "sector":"HEALTHCARE", "change":-0.05, "price":84.51}'; $groupID = "input to a hash function that maps the partition key (and associated data) to a specific shard"; try { $result = $kinesisClient->PutRecord([ 'Data' => $content, 'StreamName' => $name, 'PartitionKey' => $groupID ]); print("<p>ShardID = " . $result["ShardId"] . "</p>"); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Supprimer un flux de données

Cet exemple indique comment supprimer un flux de données. La suppression d’un flux de données entraîne également la suppression des données envoyées au flux de données. Les flux de données Active Kinesis passent à l'état DELETING jusqu'à ce que la suppression du flux soit terminée. Lorsqu’il est à l’état SUPPRESSION EN COURS, le flux continue à traiter des données.

Pour supprimer un flux de données Kinesis, utilisez l'DeleteStreamopération.

Importations

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Exemple de code

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $name = "my_stream_name"; try { $result = $kinesisClient->deleteStream([ 'StreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }