

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criação de fluxos de dados usando a API do Kinesis Data Streams e o AWS SDK para PHP versão 3
<a name="kinesis-example-data-stream"></a>

O Amazon Kinesis Data Streams permite que você envie dados em tempo real. Crie um produtor de dados com o Kinesis Data Streams que fornece dados para o destino configurado a cada vez que você adicionar dados.

Para obter mais informações, consulte [Como criar e gerenciar fluxos](https://docs.aws.amazon.com/kinesis/latest/dev/working-with-streams.html.html) no Guia do desenvolvedor do Amazon Kinesis.

Os exemplos a seguir mostram como:
+ Crie um streaming de dados usando [CreateAlias](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#createstream).
+ Obtenha detalhes sobre um único streaming de dados usando [DescribeStream](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#describestream).
+ Liste streaming de dados existentes usando [ListStreams](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#liststreams).
+ Envie dados para um streaming de dados existente usando [PutRecord](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#putrecord).
+ Exclua um streaming de dados usando [DeleteStream](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#deletestream).

O código de exemplo completo do AWS SDK para PHP está disponível [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

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

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em [Autenticando com o AWS uso da AWS SDK para PHP versão 3](credentials.md). Em seguida, importe o AWS SDK para PHP, conforme descrito em [Instalando a AWS SDK para PHP versão 3](getting-started_installation.md).

Para obter mais informações sobre o uso do Guia do desenvolvedor do Amazon Kinesis, consulte o [Guia do desenvolvedor do Amazon Kinesis Data Streams](https://docs.aws.amazon.com/kinesis/latest/dev/).

## Criar um fluxo de dados usando um fluxo de dados do Kinesis
<a name="create-a-data-stream-using-a-ak-data-stream"></a>

Estabeleça um fluxo de dados do Kinesis no qual você pode enviar informações para serem processadas pelo Kinesis usando o código de exemplo a seguir. Saiba mais sobre [como criar e atualizar fluxos de dados](https://docs.aws.amazon.com/kinesis/latest/dev/amazon-kinesis-streams.html) no Guia do desenvolvedor do Amazon Kinesis.

Para criar um fluxo de dados do Kinesis, use a operação [CreateStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_CreateStream.html).

 **Importações** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Recuperar um fluxo de dados
<a name="retrieve-a-data-stream"></a>

Obtenha detalhes sobre um streaming de dados existente usando o código de exemplo a seguir. Por padrão, isso retorna informações sobre os primeiros dez fragmentos conectados ao fluxo de dados especificado do Kinesis. Lembre-se de verificar `StreamStatus` da resposta antes de gravar dados em um fluxo de dados do Kinesis.

Para recuperar detalhes sobre determinado fluxo de dados, o Kinesis usa a operação [DescribeStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStream.html).

 **Importações** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Listar fluxos de dados existentes que estão conectados ao Kinesis
<a name="list-existing-data-streams-that-are-connected-to-ak"></a>

Liste os primeiros 10 fluxos de dados a partir de sua Conta da AWS na região da AWS selecionada. Use o ``HasMoreStreams` retornado para determinar se há mais streamings associados à sua conta.

Para listar os fluxos de dados do Kinesis, use a operação [ListStreams](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListStreams.html).

 **Importações** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Enviar dados para um fluxo de dados existente
<a name="send-data-to-an-existing-data-stream"></a>

Depois de criar um streaming de dados, use o exemplo a seguir para enviar dados. Antes de enviar dados para ele, use `DescribeStream` para verificar se os dados `StreamStatus` estão ativos.

Para gravar um único registro de dados em um fluxo de dados do Kinesis, use a operação [PutRecord](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html). Para gravar até 500 registros em um fluxo de dados do Kinesis, use a operação [PutRecords](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecords.html).

 **Importações** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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

## Criar um fluxo de dados
<a name="delete-a-data-stream"></a>

Este exemplo demonstra como excluir um streaming de dados. Excluir um streaming de dados também exclui todos os dados enviados a ele. Os fluxos de dados ativos do Kinesis alternam para o estado DELETING até que a exclusão do fluxo seja concluída. Enquanto está no estado DELETING (EXCLUINDO), o streaming continua a processar dados.

Para excluir um fluxo de dados do Kinesis, use a operação [DeleteStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DeleteStream.html).

 **Importações** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Código de exemplo** 

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