Kinesis Data Streams API と AWS SDK for PHP バージョン 3 を使用したデータストリームの作成 - AWS SDK for PHP

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

Kinesis Data Streams API と AWS SDK for PHP バージョン 3 を使用したデータストリームの作成

Amazon Kinesis Data Streams では、リアルタイムデータを送信できます。Kinesis Data Streams を使用して、データを追加するたびに設定された送信先にデータを配信するデータプロデューサーを作成します。

詳細については、「Amazon Kinesis デベロッパーガイド」の「ストリームの作成と管理」を参照してください。

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

  • を使用してデータストリームを作成しますCreateAlias

  • を使用して、単一のデータストリームの詳細を取得しますDescribeStream

  • を使用して既存のデータストリームを一覧表示しますListStreams

  • を使用して既存のデータストリームにデータを送信しますPutRecord

  • を使用してデータストリームを削除しますDeleteStream

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

認証情報

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

「Amazon Kinesis デベロッパーガイド」の使用に関する詳細については、「Amazon Kinesis Data Streams デベロッパーガイド」を参照してください。

Kinesis Data Streams を使用したデータストリームの作成

次のコード例を使用して、Kinesis によって処理される情報を送信できる Kinesis データストリームを確立します。「Amazon Kinesis デベロッパーガイド」でデータストリームの作成および更新の詳細について参照してください。

Kinesis データストリームを作成するには、 CreateStreamオペレーションを使用します。

インポート

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

サンプルコード

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $shardCount = 2; $name = "my_stream_name"; try { $result = $kinesisClient->createStream([ 'ShardCount' => $shardCount, 'StreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

データストリームを取得する

次のコード例を使用して、既存のデータストリームの詳細を取得します。デフォルトでは、これにより、指定した Kinesis データストリームに接続されている最初の 10 個のシャードに関する情報が返されます。必ず、Kinesis データストリームにデータを書き込む前に応答から StreamStatus を確認してください。

指定された Kinesis データストリームの詳細を取得するには、 DescribeStreamオペレーションを使用します。

インポート

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

サンプルコード

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $name = "my_stream_name"; try { $result = $kinesisClient->describeStream([ 'StreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Kinesis に接続された既存のデータストリームのリスト

選択した AWS リージョンの AWS アカウント から最初の 10 個のデータストリームをリストします。返された `HasMoreStreams を使用して、さらに多くのストリームがアカウントに関連付けられているかどうかを判断します。

Kinesis データストリームを一覧表示するには、 ListStreamsオペレーションを使用します。

インポート

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

サンプルコード

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); try { $result = $kinesisClient->listStreams(); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

既存のデータストリームにデータを送信する

データストリームを作成したら、次の例を使用してデータを送信します。データを送信する前に、StreamStatus を使用してデータ DescribeStream がアクティブであるかどうかを確認します。

1 つのデータレコードを Kinesis データストリームに書き込むには、 PutRecordオペレーションを使用します。Kinesis データストリームに最大 500 個のレコードを書き込むには、 PutRecordsオペレーションを使用します。

インポート

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

サンプルコード

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-1' ]); $name = "my_stream_name"; $content = '{"ticker_symbol":"QXZ", "sector":"HEALTHCARE", "change":-0.05, "price":84.51}'; $groupID = "input to a hash function that maps the partition key (and associated data) to a specific shard"; try { $result = $kinesisClient->PutRecord([ 'Data' => $content, 'StreamName' => $name, 'PartitionKey' => $groupID ]); print("<p>ShardID = " . $result["ShardId"] . "</p>"); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

データストリームを削除する

この例では、データストリームを削除する方法を示しています。データストリームを削除すると、データストリームに送信されたデータもすべて削除されます。アクティブな Kinesis データストリームは、ストリームの削除が完了するまで DELETING 状態に切り替わります。DELETING 状態の間、ストリームはデータの処理を続けます。

Kinesis データストリームを削除するには、 DeleteStreamオペレーションを使用します。

インポート

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

サンプルコード

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $name = "my_stream_name"; try { $result = $kinesisClient->deleteStream([ 'StreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }