Firehose API とAWS SDK for PHPバージョン 3 を使用した配信ストリームの作成 - AWS SDK for PHP

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Firehose API とAWS SDK for PHPバージョン 3 を使用した配信ストリームの作成

Amazon Data Firehose を使用すると、Amazon Kinesis Data Streams、Amazon S3、Amazon OpenSearch Service (OpenSearch サービス)、Amazon Redshift などの他の AWSのサービス、または Splunk にリアルタイムデータを送信できます。配信ストリームを持つデータプロデューサーを作成し、データを追加するたびに、設定された送信先にデータを配信します。

以下の例では、次の方法を示しています。

のすべてのサンプルコードAWS SDK for PHPは、 にあります GitHub

認証情報

サンプルコードを実行する前に、AWS の認証情報を設定します (認証情報 を参照)。AWS SDK for PHP からのインポート (基本的な使用法 を参照)。

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 S3CreateDeliveryStream バケットにデータを配置する配信ストリームを確立するには、 オペレーションを使用します。

Destination Parameters」で説明されているように、送信先パラメータを指定します。次に、「Amazon S3 の送信先 へのアクセス権を Kinesis Data Firehose に付与する」で説明されているように、Amazon S3 バケットへのアクセス権を 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_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 サービスを使用して配信ストリームを作成する

OpenSearch サービスクラスターにデータを配置する Firehose 配信ストリームを確立するには、 CreateDeliveryStreamオペレーションを使用します。

Destination Parameters」で説明されているように、送信先パラメータを指定します。「Amazon ES 送信先 へのアクセス権を Kinesis Data Firehose に付与する」の説明に従って、 OpenSearch サービスクラスターへのアクセス権を Firehose に付与してください。 https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-es.html

インポート

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、Service、または Amazon Redshift、または Splunk にデータを送信する既存の Firehose 配信ストリームをすべて一覧表示するには、 ListDeliveryStreamsオペレーションを使用します。 OpenSearch

インポート

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 配信ストリームを介して指定した送信先にデータを送信するには、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"; }