Membuat aliran pengiriman menggunakan Firehose API dan Versi 3 AWS SDK for PHP - AWS SDK for PHP

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuat aliran pengiriman menggunakan Firehose API dan Versi 3 AWS SDK for PHP

Amazon Data Firehose memungkinkan Anda mengirim data real-time ke AWS layanan lain termasuk Amazon Kinesis Data Streams, Amazon S3, Layanan Amazon (OpenSearch Layanan), dan OpenSearch Amazon Redshift, atau ke Splunk. Buat produsen data dengan aliran pengiriman untuk mengirimkan data ke tujuan yang dikonfigurasi setiap kali Anda menambahkan data.

Contoh berikut menunjukkan cara:

Semua kode contoh untuk AWS SDK for PHP tersedia di sini GitHub.

Kredensial

Sebelum menjalankan kode contoh, konfigurasikan AWS kredensil Anda, seperti yang dijelaskan dalam. Kredensial Kemudian imporAWS SDK for PHP, seperti yang dijelaskan dalamPenggunaan dasar.

Untuk informasi selengkapnya tentang penggunaan Amazon Data Firehose, lihat Panduan Pengembang Amazon Kinesis Data Firehose.

Buat aliran pengiriman menggunakan aliran data Kinesis

Untuk membuat aliran pengiriman yang menempatkan data ke dalam aliran data Kinesis yang ada, gunakan operasi. CreateDeliveryStream

Hal ini memungkinkan pengembang untuk memigrasikan layanan Kinesis yang ada ke Firehose.

Impor

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

Kode Sampel

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

Buat aliran pengiriman menggunakan bucket Amazon S3

Untuk membuat aliran pengiriman yang menempatkan data ke dalam bucket Amazon S3 yang ada, gunakan operasi. CreateDeliveryStream

Berikan parameter tujuan, seperti yang dijelaskan dalam Parameter Tujuan. Kemudian pastikan Anda memberikan akses Firehose ke bucket Amazon S3, seperti yang dijelaskan dalam Berikan Akses Firehose Data Kinesis ke Tujuan Amazon S3.

Impor

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

Kode Sampel

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

Buat aliran pengiriman menggunakan OpenSearch Layanan

Untuk membuat aliran pengiriman Firehose yang menempatkan data ke dalam kluster OpenSearch Layanan, gunakan operasi. CreateDeliveryStream

Berikan parameter tujuan, seperti yang dijelaskan dalam Parameter Tujuan. Pastikan Anda memberikan akses Firehose ke kluster OpenSearch Layanan, seperti yang dijelaskan dalam Berikan Akses Firehose Data Kinesis ke Tujuan Amazon ES.

Impor

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

Kode Sampel

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

Mengambil aliran pengiriman

Untuk mendapatkan detail tentang aliran pengiriman Firehose yang ada, gunakan operasi. DescribeDeliveryStream

Impor

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

Kode Sampel

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

Buat daftar aliran pengiriman yang ada yang terhubung ke Kinesis Data Streams

Untuk mencantumkan semua aliran pengiriman Firehose yang ada yang mengirim data ke Kinesis Data Streams, gunakan operasi. ListDeliveryStreams

Impor

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

Kode Sampel

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

Buat daftar aliran pengiriman yang ada yang mengirim data ke layanan lain AWS

Untuk mencantumkan semua aliran pengiriman Firehose yang ada yang mengirim data ke Amazon S3, Layanan, OpenSearch atau Amazon Redshift, atau ke Splunk, gunakan operasi. ListDeliveryStreams

Impor

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

Kode Sampel

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

Kirim data ke aliran pengiriman Firehose yang ada

Untuk mengirim data melalui aliran pengiriman Firehose ke tujuan yang Anda tentukan, gunakan PutRecordoperasi setelah Anda membuat aliran pengiriman Firehose.

Sebelum mengirim data ke aliran pengiriman Firehose, gunakan DescribeDeliveryStream untuk melihat apakah aliran pengiriman aktif.

Impor

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

Kode Sampel

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

Menghapus aliran pengiriman Firehose

Untuk menghapus aliran pengiriman Firehose, gunakan operasi. DeleteDeliveryStreams Ini juga menghapus data apa pun yang telah Anda kirim ke aliran pengiriman.

Impor

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

Kode Sampel

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