Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Creación de flujos de entrega mediante la API Firehose y la versión 3 AWS SDK for PHP
Amazon Data Firehose le permite enviar datos en tiempo real a otros AWS servicios, como Amazon Kinesis Data Streams, Amazon S3, Amazon OpenSearch Service (OpenSearch Service) y Amazon Redshift, o a Splunk. Cree un productor de datos con secuencias de entrega que entregue datos al destino configurado cada vez que agregue datos.
Los siguientes ejemplos muestran cómo:
-
Cree una transmisión de entrega mediante. CreateDeliveryStream
-
Obtenga detalles sobre un único flujo de entrega utilizando DescribeDeliveryStream.
-
Enumere sus flujos de entrega utilizando ListDeliveryStreams.
-
Envíe datos a un flujo de entrega utilizando PutRecord.
-
Elimine una transmisión de entrega mediante DeleteDeliveryStream.
Todo el código de ejemplo para el AWS SDK for PHP está disponible aquí en GitHub
Credenciales
Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credentials. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.
Para obtener más información sobre el uso de Amazon Data Firehose, consulte la Guía para desarrolladores de Amazon Kinesis Data Firehose.
Crear un flujo de entrega utilizando un flujo de datos Kinesis
Para establecer una transmisión de entrega que coloque los datos en una transmisión de datos de Kinesis existente, utilice la CreateDeliveryStreamoperación.
Esto permite a los desarrolladores migrar los servicios de Kinesis existentes a Firehose.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Código de muestra
$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"; }
Crear un flujo de entrega utilizando un bucket de Amazon S3
Para establecer un flujo de entrega que coloque los datos en un bucket de Amazon S3 existente, utilice la CreateDeliveryStreamoperación.
Proporcione los parámetros del destino, tal y como se describe en Parámetros de destino. A continuación, asegúrese de conceder a Firehose acceso a su bucket de Amazon S3, tal y como se describe en Conceder a Kinesis Data Firehose acceso a un destino de Amazon S3.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Código de muestra
$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"; }
Cree una transmisión de entrega mediante Service OpenSearch
Para establecer un flujo de entrega de Firehose que coloque los datos en un clúster de OpenSearch servicios, utilice la CreateDeliveryStreamoperación.
Proporcione los parámetros del destino, tal y como se describe en Parámetros de destino. Asegúrese de conceder a Firehose acceso a su clúster de OpenSearch servicios, tal y como se describe en Conceder a Kinesis Data Firehose acceso a un destino de Amazon ES.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Código de muestra
$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 un flujo de entrega
Para obtener los detalles sobre un flujo de entrega de Firehose existente, utilice la DescribeDeliveryStreamoperación.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Código de muestra
$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"; }
Lista de flujos de entrega existentes conectados a Kinesis Data Streams
Para enumerar todas las transmisiones de entrega de Firehose existentes que envían datos a Kinesis Data Streams, utilice la operación. ListDeliveryStreams
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Código de muestra
$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"; }
Lista de flujos de entrega existentes que envían datos a otros servicios de AWS
Para enumerar todos los flujos de entrega de Firehose existentes que envían datos a Amazon S3, OpenSearch Service, Amazon Redshift o a Splunk, utilice la operación. ListDeliveryStreams
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Código de muestra
$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 datos a un flujo de entrega de Firehose existente
Para enviar datos a través de una transmisión de entrega de Firehose a su destino especificado, utilice la PutRecordoperación después de crear una transmisión de entrega de Firehose.
Antes de enviar datos a un flujo de entrega de Firehose, utilícelo DescribeDeliveryStream
para comprobar si el flujo de entrega está activo.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Código de muestra
$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"; }
Eliminar un flujo de entrega de Firehose
Para eliminar un flujo de entrega de Firehose, utilice la DeleteDeliveryStreamsoperación. Esta operación también elimina todos los datos que haya enviado a la secuencia de entrega.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Código de muestra
$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"; }