Criação de fluxos de entrega usando a API Firehose e AWS SDK for PHP a versão 3 - AWS SDK for 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á.

Criação de fluxos de entrega usando a API Firehose e AWS SDK for PHP a versão 3

O Amazon Data Firehose permite que você envie dados em tempo real para outros AWS serviços, incluindo Amazon Kinesis Data Streams, Amazon S3, Amazon OpenSearch Service (Service) e OpenSearch 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:

Todo o código de exemplo para o AWS SDK for PHP está disponível aqui em GitHub.

Credenciais

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em Credenciais. Em seguida, importe o AWS SDK for PHP, conforme descrito em Uso básico.

Para obter mais informações sobre o uso do 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 stream de entrega que coloque dados em um stream de dados existente do Kinesis, use a CreateDeliveryStreamoperação.

Isso permite que os desenvolvedores migrem os 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 coloque dados em um bucket Amazon S3 existente, use a CreateDeliveryStreamoperação.

Forneça os parâmetros de destino, conforme descrito em Parâmetros de destino. Em seguida, certifique-se de conceder ao Firehose acesso ao seu bucket do Amazon S3, conforme descrito em Conceder acesso ao Kinesis Data Firehose 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"; }

Crie um fluxo de entrega usando o OpenSearch Service

Para estabelecer um stream de entrega do Firehose que coloque dados em um cluster OpenSearch de serviços, use a CreateDeliveryStreamoperação.

Forneça os parâmetros de destino, conforme descrito em Parâmetros de destino. Certifique-se de conceder ao Firehose acesso ao seu cluster de OpenSearch serviços, conforme descrito em Conceder acesso ao Kinesis Data Firehose 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 os detalhes sobre um stream de entrega existente do Firehose, use a DescribeDeliveryStreamoperação.

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 streams 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, Service OpenSearch 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 stream de entrega existente do Firehose

Para enviar dados por meio de um stream de entrega do Firehose para o destino especificado, use a PutRecordoperação depois de criar um stream de entrega do Firehose.

Antes de enviar dados para um stream de entrega do Firehose, use DescribeDeliveryStream para ver se o stream 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 stream de entrega do Firehose

Para excluir um stream de entrega do Firehose, use a DeleteDeliveryStreamsoperação. 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"; }