Creazione di flussi di distribuzione utilizzando l'API Firehose e AWS SDK for PHP la versione 3 - AWS SDK for PHP

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di flussi di distribuzione utilizzando l'API Firehose e AWS SDK for PHP la versione 3

Amazon Data Firehose consente di inviare dati in tempo reale ad altri AWS servizi, tra cui Amazon Kinesis Data Streams, Amazon S3, Amazon OpenSearch Service (Service) e OpenSearch Amazon Redshift, oppure a Splunk. Creare un produttore dati con flussi di distribuzione per fornire i dati alla destinazione configurata ogni volta che aggiungi dati.

Gli esempi seguenti mostrano come:

Tutto il codice di esempio per il AWS SDK for PHP è disponibile qui GitHub.

Credenziali

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto inCredenziali. Quindi importate il fileAWS SDK for PHP, come descritto inUtilizzo di base.

Per ulteriori informazioni sull'uso di Amazon Data Firehose, consulta la Amazon Kinesis Data Firehose Developer Guide.

Crea un flusso di distribuzione utilizzando un flusso di dati Kinesis

Per stabilire un flusso di distribuzione che inserisca i dati in un flusso di dati Kinesis esistente, usa l'CreateDeliveryStreamoperazione.

Ciò consente agli sviluppatori di migrare i servizi Kinesis esistenti su Firehose.

Importazioni

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

Codice di esempio

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

Crea un flusso di distribuzione utilizzando un bucket Amazon S3

Per stabilire un flusso di distribuzione che inserisca i dati in un bucket Amazon S3 esistente, utilizza l'operazione. CreateDeliveryStream

Fornire i parametri di destinazione, come descritto in Parametri di destinazione. Quindi assicurati di concedere a Firehose l'accesso al tuo bucket Amazon S3, come descritto in Concedere a Kinesis Data Firehose l'accesso a una destinazione Amazon S3.

Importazioni

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

Codice di esempio

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

Crea un flusso di distribuzione utilizzando Service OpenSearch

Per stabilire un flusso di distribuzione Firehose che inserisca i dati in un cluster OpenSearch di servizi, utilizzate l'CreateDeliveryStreamoperazione.

Fornire i parametri di destinazione, come descritto in Parametri di destinazione. Assicurati di concedere a Firehose l'accesso al tuo cluster di OpenSearch servizi, come descritto in Concedere a Kinesis Data Firehose l'accesso a una destinazione Amazon ES.

Importazioni

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

Codice di esempio

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

Recupera un flusso di distribuzione

Per ottenere i dettagli su un flusso di distribuzione Firehose esistente, utilizzare l'DescribeDeliveryStreamoperazione.

Importazioni

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

Codice di esempio

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

Elenca i flussi di distribuzione esistenti collegati a Kinesis Data Streams

Per elencare tutti i flussi di distribuzione Firehose esistenti che inviano dati a Kinesis Data Streams, utilizzare l'operazione. ListDeliveryStreams

Importazioni

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

Codice di esempio

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

Elenca i flussi di consegna esistenti che inviano dati ad altri servizi AWS

Per elencare tutti i flussi di distribuzione Firehose esistenti che inviano dati ad Amazon S3, Service OpenSearch o Amazon Redshift o a Splunk, utilizza l'operazione. ListDeliveryStreams

Importazioni

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

Codice di esempio

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

Inviare dati a un flusso di distribuzione Firehose esistente

Per inviare dati tramite un flusso di distribuzione Firehose alla destinazione specificata, utilizzare l'PutRecordoperazione dopo aver creato un flusso di consegna Firehose.

Prima di inviare dati a un flusso di distribuzione Firehose, controllate DescribeDeliveryStream se il flusso di distribuzione è attivo.

Importazioni

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

Codice di esempio

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

Eliminare un flusso di distribuzione Firehose

Per eliminare un flusso di distribuzione Firehose, utilizzare l'DeleteDeliveryStreamsoperazione. Ciò elimina anche tutti i dati inviati al flusso di distribuzione.

Importazioni

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

Codice di esempio

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