Creazione di flussi di distribuzione utilizzando l'API Kinesis Data Firehose eAWS SDK for PHPVersione 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 Kinesis Data Firehose eAWS SDK for PHPVersione 3

Amazon Kinesis Data Firehose consente di inviare dati in tempo reale ad altriAWSservizi tra cui Amazon Kinesis Data Streams, Amazon S3, Amazon OpenSearch Servizio (OpenSearch Service) e Amazon Redshift o 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:

La versione integrale del codice di esempio di AWS SDK for PHP è disponibile qui su GitHub.

Credenziali

Prima di eseguire il codice di esempio, configurare ilAWScredenziali, come descritto inImpostazione delle credenziali . Quindi importaAWS SDK for PHP, come descritto inUtilizzo di base.

Per ulteriori informazioni sull'utilizzo di Amazon Kinesis Data Firehose, consultaAmazon Kinesis Data Firehose.

Creare un flusso di distribuzione utilizzando un flusso di dati Kinesis

Per stabilire un flusso di distribuzione che inserisce i dati in un flusso di dati Kinesis esistente, utilizzareCreateDeliveryStreamoperazione.

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

Importazioni

require 'vendor/autoload.php'; use Aws\Firehose\FirehoseClient; 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 inserisce i dati in un bucket Amazon S3 esistente, utilizzareCreateDeliveryStreamoperazione.

Fornire i parametri di destinazione, come descritto in Parametri di destinazione. Quindi accertarsi che venga concesso a Kinesis Data Firehose ad l'accesso al bucket Amazon S3, come descritto inConcessione dell'accesso a Kinesis Data Firehose a una destinazione di Amazon S3.

Importazioni

require 'vendor/autoload.php'; use Aws\Firehose\FirehoseClient; 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"; }

Per creare un flusso di distribuzione utilizzando OpenSearch Service (Servizio)

Per stabilire un flusso di distribuzione Kinesis Data Firehose che inserisce i dati in un OpenSearch Service cluster, utilizzare ilCreateDeliveryStreamoperazione.

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

Importazioni

require 'vendor/autoload.php'; use Aws\Firehose\FirehoseClient; 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"; }

Recuperare un flusso di distribuzione

Per ottenere i dettagli su un flusso di distribuzione Kinesis Data Firehose esistente, utilizzareDescribeDeliveryStreamoperazione.

Importazioni

require 'vendor/autoload.php'; use Aws\Firehose\FirehoseClient; 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"; }

Elenco dei flussi di distribuzione esistenti collegati ai Kinesis Data Streams

Per elencare tutti i flussi di consegna Kinesis Data Firehose esistenti che inviano dati a Kinesis Data Streams, utilizzare ilListDeliveryStreamsoperazione.

Importazioni

require 'vendor/autoload.php'; use Aws\Firehose\FirehoseClient; 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"; }

Elenco dei flussi di distribuzione esistenti che inviano dati d altri servizi AWS

Per elencare tutti i flussi di distribuzione Kinesis Data Firehose esistenti che inviano i dati ad Amazon S3, OpenSearch Servizio, o Amazon Redshift o per Splunk, usa ilListDeliveryStreamsoperazione.

Importazioni

require 'vendor/autoload.php'; use Aws\Firehose\FirehoseClient; 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"; }

Invia i dati a un flusso di distribuzione Kinesis Data Firehose esistente

Per inviare i dati tramite un flusso di distribuzione Kinesis Data Firehose alla destinazione specificata, utilizzarePutRecorddopo aver creato un flusso di distribuzione Kinesis Data Firehose.

Prima di inviare i dati a un flusso di distribuzione Kinesis Data Firehose, utilizzareDescribeDeliveryStreamper vedere se il flusso di distribuzione è attivo.

Importazioni

require 'vendor/autoload.php'; use Aws\Firehose\FirehoseClient; 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"; }

Eliminazione di un flusso di distribuzione Kinesis Data Firehose

Per eliminare un flusso di distribuzione Kinesis Data Firehose, utilizzareDeleteDeliveryStreamsoperazione. Ciò elimina anche tutti i dati inviati al flusso di distribuzione.

Importazioni

require 'vendor/autoload.php'; use Aws\Firehose\FirehoseClient; 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"; }