

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 para PHP
<a name="kinesis-example-data-stream"></a>

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](https://docs.aws.amazon.com/kinesis/latest/dev/working-with-streams.html.html) en la guía para desarrolladores Amazon Kinesis.

Los siguientes ejemplos muestran cómo:
+ Cree una secuencia de datos mediante [CreateAlias](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#createstream).
+ Obtenga información detallada acerca de una sola secuencia de datos por medio de [DescribeStream](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#describestream).
+ Enumere las secuencias de datos con [ListStreams](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#liststreams).
+ Envíe datos a una secuencia de datos existente mediante [PutRecord](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#putrecord).
+ Elimine una secuencia de datos mediante [DeleteStream](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#deletestream).

Todo el código de ejemplo de AWS SDK para PHP está disponible [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Credenciales
<a name="examplecredentials"></a>

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en [Autenticación AWS con la AWS SDK para PHP versión 3](credentials.md). A continuación, importe AWS SDK para PHP, como se indica en [Instalación de la AWS SDK para PHP versión 3](getting-started_installation.md).

Para obtener más información sobre el uso de la guía para desarrolladores, consulte [la guía para desarrolladores Amazon Kinesis Data](https://docs.aws.amazon.com/kinesis/latest/dev/).

## Crear un flujo de datos utilizando un flujo de datos de Kinesis
<a name="create-a-data-stream-using-a-ak-data-stream"></a>

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](https://docs.aws.amazon.com/kinesis/latest/dev/amazon-kinesis-streams.html) en la Guía para desarrolladores de Amazon Kinesis.

Para crear una secuencia de datos de Kinesis, utilice la operación [CreateStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_CreateStream.html).

 **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
<a name="retrieve-a-data-stream"></a>

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 los detalles acerca de una secuencia de datos de Kinesis especificada, utilice la operación [DescribeStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStream.html).

 **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
<a name="list-existing-data-streams-that-are-connected-to-ak"></a>

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 obtener una lista de los flujos de datos de Kinesis, utilice la operación [ListStreams](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListStreams.html).

 **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
<a name="send-data-to-an-existing-data-stream"></a>

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 un flujo de datos de Kinesis, utilice la operación [PutRecord](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html). Para escribir hasta 500 registros en un flujo de datos de Kinesis, utilice la operación [PutRecord](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecords.html).

 **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
<a name="delete-a-data-stream"></a>

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 un flujo de datos de Kinesis, utilice la operación [DeleteStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DeleteStream.html).

 **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";
}
```