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 を使用して 1 つのデータストリームの詳細を取得する。

  • ListStreams を使用して既存のデータストリームをリストする。

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

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

のすべてのサンプルコード AWS SDK for PHP はGitHub で入手できます

認証情報

サンプルコードを実行する前に、「」の説明に従って AWS 認証情報を設定しますAWS SDK for PHP バージョン 3 AWS を使用した での認証。次に AWS SDK for PHP、「」の説明に従って をインポートしますAWS SDK for PHP バージョン 3 のインストール

「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 リージョンの からの最初の 10 個のデータストリーム AWS アカウント を一覧表示します。返された `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 オペレーションを使用します。最大 500 個のレコードを Kinesis データストリームに書き込むには、PutRecord オペレーションを使用します。

インポート

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