Creación de flujos de datos mediante la API de flujos de datos de Kinesis y la versión 3 de AWS SDK for PHP - AWS SDK for PHP

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de flujos de datos mediante la API de flujos de datos de Kinesis y la versión 3 de AWS SDK for PHP

Amazon Kinesis Data Streams le permite enviar datos en tiempo real. Cree un productor de datos con Kinesis Data Streams que entregue datos al destino configurado cada vez que añada datos.

Para obtener más información, consulte Creación y administración de secuencias en la guía para desarrolladores Amazon Kinesis.

Los siguientes ejemplos muestran cómo:

  • Cree un flujo de datos utilizando CreateAlias.

  • Obtenga detalles sobre un solo flujo de datos utilizando DescribeStream.

  • Enumere los flujos de datos existentes utilizando ListStreams.

  • Envíe datos a un flujo de datos existente utilizando PutRecord.

  • Elimine un flujo de datos mediante DeleteStream.

Todo el código de ejemplo para el AWS SDK for PHP está disponible aquí en GitHub.

Credenciales

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credentials. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.

Para obtener más información sobre el uso de la guía para desarrolladores, consulte la guía para desarrolladores Amazon Kinesis Data.

Crear un flujo de datos utilizando un flujo de datos de Kinesis

Establezca un flujo de datos de Kinesis en la que pueda enviar información que procesará Kinesis mediante el siguiente ejemplo de código. Obtenga más información sobre cómo crear y actualizar flujos de datos en la Guía para desarrolladores de Amazon Kinesis.

Para crear una transmisión de datos de Kinesis, utilice la CreateStreamoperación.

Importaciones

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

Código de muestra

$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"; }

Recuperación de un flujo de datos

Obtenga información detallada acerca de una secuencia de datos existente mediante el siguiente ejemplo de código. De forma predeterminada, este devuelve información acerca de las primeras 10 particiones conectadas al flujo de datos de Kinesis especificado. Recuerde comprobar StreamStatus desde la respuesta antes de escribir datos en un flujo de datos de Kinesis.

Para recuperar detalles sobre una transmisión de datos de Kinesis específica, utilice la DescribeStreamoperación.

Importaciones

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

Código de muestra

$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"; }

Lista de flujos de datos existentes que están conectados a Kinesis

Enumere los primeros 10 flujos de datos desde su cuenta de Cuenta de AWS en la región de AWS seleccionada. Utilice el `HasMoreStreams devuelto para determinar si hay más secuencias asociadas a su cuenta.

Para enumerar las transmisiones de datos de Kinesis, utilice la ListStreamsoperación.

Importaciones

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

Código de muestra

$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"; }

Envío de datos a un flujo de datos existente

Una vez que haya creado una secuencia de datos, utilice el siguiente ejemplo para enviar datos. Antes de enviarle los datos, utilice DescribeStream para comprobar si los datos StreamStatus están activos.

Para escribir un único registro de datos en una transmisión de datos de Kinesis, utilice la PutRecordoperación. Para escribir hasta 500 registros en una transmisión de datos de Kinesis, utilice la PutRecordsoperación.

Importaciones

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

Código de muestra

$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"; }

Eliminación de un flujo de datos

En este ejemplo se muestra cómo se elimina una secuencia de datos. Eliminar una secuencia de datos, también elimina todos los datos que haya enviado a la secuencia de datos. Los flujos de datos de Kinesis activos cambian al estado ELIMINANDO hasta que se haya completado la secuencia de eliminación. Mientras se encuentra en el estado ELIMINANDO, la secuencia sigue procesando datos.

Para eliminar una transmisión de datos de Kinesis, utilice la DeleteStreamoperación.

Importaciones

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

Código de muestra

$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"; }