Criar fluxos de entrega usando a API do Firehose e o AWS SDK para PHP versão 3 - AWS SDK para PHP

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á.

Criar fluxos de entrega usando a API do Firehose e o AWS SDK para PHP versão 3

O Amazon Data Firehose permite que você envie dados em tempo real para outros serviços da AWS, incluindo Amazon Kinesis Data Streams, Amazon S3, Amazon OpenSearch Service (OpenSearch Service) e Amazon Redshift, ou para o Splunk. Crie um produtor de dados com os fluxos de entrega para fornecer dados para o destino configurado a cada vez que você adicionar dados.

Os exemplos a seguir mostram como:

O código de exemplo completo do AWS SDK para PHP está disponível aqui no GitHub.

Credenciais

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. Em seguida, importe o AWS SDK para PHP, conforme descrito em Instalar o AWS SDK para PHP versão 3.

Para obter informações sobre como usar o Amazon Data Firehose, consulte o Guia do desenvolvedor do Amazon Kinesis Data Firehose.

Criar um fluxo de entrega usando um fluxo de dados do Kinesis

Para estabelecer um fluxo de entrega que coloca os dados em um fluxo de dados do Kinesis, use a operação CreateDeliveryStream.

Isso permite que os desenvolvedores migrem serviços existentes do Kinesis para o Firehose.

Importações

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

Código de exemplo

$firehoseClient = new Aws\Firehose\FirehoseClient([ 'profile' => 'default', 'version' => '2015-08-04', 'region' => 'us-east-2' ]); $name = "my_stream_name"; $stream_type = "KinesisStreamAsSource"; $kinesis_stream = "arn:aws:kinesis:us-east-2:0123456789:stream/my_stream_name"; $role = "arn:aws:iam::0123456789:policy/Role"; try { $result = $firehoseClient->createDeliveryStream([ 'DeliveryStreamName' => $name, 'DeliveryStreamType' => $stream_type, 'KinesisStreamSourceConfiguration' => [ 'KinesisStreamARN' => $kinesis_stream, 'RoleARN' => $role, ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Criar um fluxo de entrega usando um bucket do Amazon S3

Para estabelecer um fluxo de entrega que coloca os dados em um bucket do Amazon S3, use a operação CreateDeliveryStream.

Forneça os parâmetros de destino, conforme descrito em Parâmetros de destino. Em seguida, conceda ao seu bucket do Amazon S3 acesso ao Firehose, conforme descrito em Conceder ao Kinesis Data Firehose acesso a um destino do Amazon S3.

Importações

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

Código de exemplo

$firehoseClient = new Aws\Firehose\FirehoseClient([ 'profile' => 'default', 'version' => '2015-08-04', 'region' => 'us-east-2' ]); $name = "my_S3_stream_name"; $stream_type = "DirectPut"; $s3bucket = 'arn:aws:s3:::bucket_name'; $s3Role = 'arn:aws:iam::0123456789:policy/Role'; try { $result = $firehoseClient->createDeliveryStream([ 'DeliveryStreamName' => $name, 'DeliveryStreamType' => $stream_type, 'S3DestinationConfiguration' => [ 'BucketARN' => $s3bucket, 'CloudWatchLoggingOptions' => [ 'Enabled' => false, ], 'RoleARN' => $s3Role ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Para testar um fluxo de entrega usando o OpenSearch Service

Para estabelecer um fluxo de entrega do Firehose que coloca os dados em um cluster do OpenSearch Service, use a operação CreateDeliveryStream.

Forneça os parâmetros de destino, conforme descrito em Parâmetros de destino. Certifique-se de conceder ao seu cluster do OpenSearch Service acesso ao Firehose, conforme descrito em Conceder ao Kinesis Data Firehose acesso a um destino do Amazon ES.

Importações

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

Código de exemplo

$firehoseClient = new Aws\Firehose\FirehoseClient([ 'profile' => 'default', 'version' => '2015-08-04', 'region' => 'us-east-2' ]); $name = "my_ES_stream_name"; $stream_type = "DirectPut"; $esDomainARN = 'arn:aws:es:us-east-2:0123456789:domain/Name'; $esRole = 'arn:aws:iam::0123456789:policy/Role'; $esIndex = 'root'; $esType = 'PHP_SDK'; $s3bucket = 'arn:aws:s3:::bucket_name'; $s3Role = 'arn:aws:iam::0123456789:policy/Role'; try { $result = $firehoseClient->createDeliveryStream([ 'DeliveryStreamName' => $name, 'DeliveryStreamType' => $stream_type, 'ElasticsearchDestinationConfiguration' => [ 'DomainARN' => $esDomainARN, 'IndexName' => $esIndex, 'RoleARN' => $esRole, 'S3Configuration' => [ 'BucketARN' => $s3bucket, 'CloudWatchLoggingOptions' => [ 'Enabled' => false, ], 'RoleARN' => $s3Role, ], 'TypeName' => $esType, ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Recuperar um fluxo de entrega

Para obter detalhes sobre um fluxo de entrega existente do Firehose, use a operação DescribeDeliveryStream.

Importações

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

Código de exemplo

$firehoseClient = new Aws\Firehose\FirehoseClient([ 'profile' => 'default', 'version' => '2015-08-04', 'region' => 'us-east-2' ]); $name = "my_stream_name"; try { $result = $firehoseClient->describeDeliveryStream([ 'DeliveryStreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Listar fluxos de entrega existentes que estão conectados ao Kinesis Data Streams

Para listar todos os fluxos de entrega existentes do Firehose que enviam dados para o Kinesis Data Streams, use a operação ListDeliveryStreams.

Importações

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

Código de exemplo

$firehoseClient = new Aws\Firehose\FirehoseClient([ 'profile' => 'default', 'version' => '2015-08-04', 'region' => 'us-east-2' ]); try { $result = $firehoseClient->listDeliveryStreams([ 'DeliveryStreamType' => 'KinesisStreamAsSource', ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Listar fluxos de entrega existentes que enviam dados para outros serviços da AWS

Para listar todos os fluxos de entrega existentes do Firehose que enviam dados para o Amazon S3, OpenSearch Service ou Amazon Redshift, ou para o Splunk, use a operação ListDeliveryStreams.

Importações

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

Código de exemplo

$firehoseClient = new Aws\Firehose\FirehoseClient([ 'profile' => 'default', 'version' => '2015-08-04', 'region' => 'us-east-2' ]); try { $result = $firehoseClient->listDeliveryStreams([ 'DeliveryStreamType' => 'DirectPut', ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Enviar dados para um fluxo de entrega existente do Firehose

Para enviar dados por meio de um fluxo de entrega do Firehose ao seu destino especificado, use a operação PutRecord após criar um fluxo de entrega do Firehose.

Antes de enviar dados para um fluxo de entrega do Firehose, use DescribeDeliveryStream para verificar se o fluxo de entrega está ativo.

Importações

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

Código de exemplo

$firehoseClient = new Aws\Firehose\FirehoseClient([ 'profile' => 'default', 'version' => '2015-08-04', 'region' => 'us-east-2' ]); $name = "my_stream_name"; $content = '{"ticker_symbol":"QXZ", "sector":"HEALTHCARE", "change":-0.05, "price":84.51}'; try { $result = $firehoseClient->putRecord([ 'DeliveryStreamName' => $name, 'Record' => [ 'Data' => $content, ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Excluir um fluxo de entrega do Firehose

Para excluir um fluxo de entrega do Firehose, use a operação DeleteDeliveryStreams. Isso também exclui todos os dados enviados ao fluxo de entrega.

Importações

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

Código de exemplo

$firehoseClient = new Aws\Firehose\FirehoseClient([ 'profile' => 'default', 'version' => '2015-08-04', 'region' => 'us-east-2' ]); $name = "my_stream_name"; try { $result = $firehoseClient->deleteDeliveryStream([ 'DeliveryStreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }