Création de flux de diffusion à l'aide de l'API Firehose et de la version 3 AWS SDK for PHP - AWS SDK for PHP

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création de flux de diffusion à l'aide de l'API Firehose et de la version 3 AWS SDK for PHP

Amazon Data Firehose vous permet d'envoyer des données en temps réel à d'autres AWS services, notamment Amazon Kinesis Data Streams, Amazon S3, Amazon OpenSearch Service (OpenSearch Service) et Amazon Redshift, ou à Splunk. Créer un producteur de données avec les flux de diffusion pour transférer des données vers la destination configurée chaque fois que vous ajoutez des données.

Les exemples suivants montrent comment :

Tous les exemples de code pour le AWS SDK for PHP sont disponibles ici GitHub.

Informations d’identification

Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dansInformations d'identification. Importez ensuite leAWS SDK for PHP, comme décrit dansUtilisation de base.

Pour plus d'informations sur l'utilisation d'Amazon Data Firehose, consultez le manuel du développeur Amazon Kinesis Data Firehose.

Création d'un flux de diffusion à l'aide d'un flux de données Kinesis

Pour établir un flux de diffusion qui place les données dans un flux de données Kinesis existant, utilisez l'CreateDeliveryStreamopération.

Cela permet aux développeurs de migrer les services Kinesis existants vers Firehose.

Importations

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

Exemple de code

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

Création d'un flux de diffusion à l'aide d'un compartiment Amazon S3

Pour établir un flux de diffusion qui place les données dans un compartiment Amazon S3 existant, utilisez l'CreateDeliveryStreamopération.

Indiquez les paramètres de destination, comme indiqué dans la section Paramètres de destination. Assurez-vous ensuite d'accorder à Firehose l'accès à votre compartiment Amazon S3, comme décrit dans Accorder à Kinesis Data Firehose l'accès à une destination Amazon S3.

Importations

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

Exemple de code

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

Création d'un flux de diffusion à l'aide OpenSearch de Service

Pour établir un flux de diffusion Firehose qui place les données dans un cluster de OpenSearch services, utilisez l'CreateDeliveryStreamopération.

Indiquez les paramètres de destination, comme indiqué dans la section Paramètres de destination. Assurez-vous d'accorder à Firehose l'accès à votre cluster de OpenSearch services, comme décrit dans Accorder à Kinesis Data Firehose l'accès à une destination Amazon ES.

Importations

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

Exemple de code

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

Récupérez un flux de diffusion

Pour obtenir des informations sur un flux de diffusion Firehose existant, utilisez l'DescribeDeliveryStreamopération.

Importations

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

Exemple de code

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

Répertorier les flux de diffusion existants connectés à Kinesis Data Streams

Pour répertorier tous les flux de diffusion Firehose existants qui envoient des données à Kinesis Data Streams, utilisez l'opération. ListDeliveryStreams

Importations

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

Exemple de code

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

Répertorier les flux de diffusion existants envoyant des données à d'autres AWS services

Pour répertorier tous les flux de diffusion Firehose existants qui envoient des données à Amazon S3, OpenSearch Service, Amazon Redshift ou à Splunk, utilisez l'opération. ListDeliveryStreams

Importations

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

Exemple de code

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

Envoyer des données vers un flux de diffusion Firehose existant

Pour envoyer des données via un flux de diffusion Firehose vers la destination que vous avez spécifiée, utilisez l'PutRecordopération après avoir créé un flux de diffusion Firehose.

Avant d'envoyer des données à un flux de diffusion Firehose, utilisez-le DescribeDeliveryStream pour vérifier si le flux de diffusion est actif.

Importations

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

Exemple de code

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

Supprimer un flux de diffusion Firehose

Pour supprimer un flux de diffusion Firehose, utilisez l'DeleteDeliveryStreamsopération. Ceci supprime également toutes les données envoyées dans le flux de diffusion.

Importations

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

Exemple de code

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