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:
-
Criar um fluxo de entrega usando a operação CreateDeliveryStream.
-
Obter detalhes sobre um único fluxo de entrega usando a operação DescribeDeliveryStream.
-
Listar seus fluxos de entrega usando a operação ListDeliveryStreams.
-
Enviar dados para um fluxo de entrega usando a operação PutRecord.
-
Excluir um fluxo de entrega usando a operação DeleteDeliveryStream.
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"; }