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:
-
Crea un flusso di distribuzione utilizzando. CreateDeliveryStream
-
Ottieni dettagli su un singolo flusso di consegna utilizzando DescribeDeliveryStream.
-
Elenca i tuoi flussi di consegna utilizzando ListDeliveryStreams.
-
Invia dati a un flusso di consegna utilizzando PutRecord.
-
Elimina un flusso di consegna utilizzando DeleteDeliveryStream.
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"; }