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:
-
Buat aliran pengiriman menggunakan CreateDeliveryStream.
-
Dapatkan detail tentang aliran pengiriman tunggal menggunakan DescribeDeliveryStream.
-
Buat daftar aliran pengiriman Anda menggunakan ListDeliveryStreams.
-
Kirim data ke aliran pengiriman menggunakan PutRecord.
-
Hapus aliran pengiriman menggunakan DeleteDeliveryStream.
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"; }