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:
-
Crie um stream de entrega usando CreateDeliveryStreamo.
-
Obtenha detalhes sobre um único stream de entrega usando DescribeDeliveryStream.
-
Liste seus fluxos de entrega usando ListDeliveryStreams.
-
Envie dados para um stream de entrega usando PutRecordo.
-
Exclua um stream de entrega usando DeleteDeliveryStreamo.
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"; }