翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Firehose API と AWS SDK for PHP バージョン 3 を使用した配信ストリームの作成
Amazon Data Firehose を使用すると、Amazon Kinesis Data Streams、Amazon S3、Amazon OpenSearch Service (OpenSearch Service)、Amazon Redshift などの他の AWS サービスや、Splunk にリアルタイムデータを送信できます。配信ストリームを持つデータプロデューサーを作成し、データを追加するたびに、設定された送信先にデータを配信します。
以下の例では、次の方法を示しています。
-
CreateDeliveryStream を使用して配信ストリームを作成する。
-
DescribeDeliveryStream を使用して 1 つの配信ストリームの詳細を取得する
-
ListDeliveryStreams を使用して配信ストリームをリストする。
-
PutRecord を使用して配信ストリームにデータを送信する。
-
DeleteDeliveryStream を使用して配信ストリームを削除する。
AWS SDK for PHP 用のすべてのサンプルコードは GitHub
認証情報
サンプルコードを実行する前に、AWS の認証情報を設定します (AWS SDK for PHP バージョン 3 AWS を使用した での認証 を参照)。AWS SDK for PHP からのインポート (AWS SDK for PHP バージョン 3 のインストール を参照)。
Amazon Data Firehose の使用の詳細については、「Amazon Kinesis Data Firehose デベロッパーガイド」を参照してください。
Kinesis データストリームを使用した配信ストリームの作成
既存の Kinesis データストリームにデータを配置する配信ストリームを確立するには、CreateDeliveryStream オペレーションを使用します。
これにより、デベロッパーは既存の Kinesis サービスを Firehose に移行できるようになります。
インポート。
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
サンプルコード
$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"; }
Amazon S3 バケットを使用した配信ストリームの作成
既存の Amazon S3 バケットにデータを配置する配信ストリームを確立するには、CreateDeliveryStream オペレーションを使用します。
「Destination Parameters」で説明されているように、送信先パラメータを指定します。次に、「Amazon S3 の送信先へのアクセス権を Kinesis Data Firehose に付与する」で説明したように、Firehose の Amazon S3 バケットへのアクセス権を付与していることを確認します。
インポート。
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
サンプルコード
$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"; }
OpenSearch Service を使用して配信ストリームをテストする
OpenSearch Service クラスターにデータを配置する Firehose 配信ストリームを確立するには、CreateDeliveryStream オペレーションを使用します。
「Destination Parameters」で説明されているように、送信先パラメータを指定します。「Amazon Redshift の送信先へのアクセス権を Kinesis Data Firehose に付与する」で説明したように、Firehose の OpenSearch Service クラスターへのアクセス権を付与していることを確認します。
インポート。
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
サンプルコード
$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"; }
配信ストリームを取得する
既存の Firehose 配信ストリームに関する詳細情報を取得するには、DescribeDeliveryStream オペレーションを使用します。
インポート。
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
サンプルコード
$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"; }
Kinesis Data Streams に接続された既存の配信ストリームのリスト
Kinesis Data Streams にデータを送信している既存のすべての Firehose 配信ストリームをリストするには、ListDeliveryStreams オペレーションを使用します。
インポート。
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
サンプルコード
$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"; }
他の AWS サービスにデータを送信している既存の配信ストリームをリストする
Amazon S3、OpenSearch Service、または Amazon Redshift、あるいは Splunk にデータを送信している既存のすべての Firehose 配信ストリームをリストするには、ListDeliveryStreams オペレーションを使用します。
インポート。
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
サンプルコード
$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"; }
既存の Firehose 配信ストリームへのデータの送信
Firehose 配信ストリームを介して指定した送信先にデータを送信するには、Kinesis Data Firehose 配信ストリームを作成した後に PutRecord オペレーションを使用します。
Firehose 配信ストリームにデータを送信する前に、DescribeDeliveryStream を使用して配信ストリームがアクティブかどうかを確認します。
インポート。
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
サンプルコード
$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"; }
Firehose 配信ストリームの削除
Firehose 配信ストリームを削除するには、DeleteDeliveryStreams オペレーションを使用します。これにより、送信ストリームに送信したデータがすべて削除されます。
インポート。
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
サンプルコード
$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"; }