翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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"; }