

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

# Kinesis Data Streams API と AWS SDK for PHP バージョン 3 を使用したデータストリームの作成
<a name="kinesis-example-data-stream"></a>

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

詳細については、「Amazon Kinesis デベロッパーガイド」の「[ストリームの作成と管理](https://docs.aws.amazon.com/kinesis/latest/dev/working-with-streams.html.html)」を参照してください。

以下の例では、次の方法を示しています。
+ [CreateAlias](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#createstream) を使用してデータストリームを作成する。
+ [DescribeStream](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#describestream) を使用して 1 つのデータストリームの詳細を取得する。
+ [ListStreams](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#liststreams) を使用して既存のデータストリームをリストする。
+ [PutRecord](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#putrecord) を使用して既存のデータストリームにデータを送信する。
+ [DeleteStream](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kinesis-1913-12-02.html#deletestream) を使用してデータストリームを削除する。

AWS SDK for PHP 用のすべてのサンプルコードは [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code) で入手できます。

## 認証情報
<a name="examplecredentials"></a>

サンプルコードを実行する前に、AWS の認証情報を設定します ([AWS SDK for PHP バージョン 3 AWS を使用した での認証](credentials.md) を参照)。AWS SDK for PHP からのインポート ([AWS SDK for PHP バージョン 3 のインストール](getting-started_installation.md) を参照)。

「Amazon Kinesis デベロッパーガイド」の使用に関する詳細については、「[Amazon Kinesis Data Streams デベロッパーガイド](https://docs.aws.amazon.com/kinesis/latest/dev/)」を参照してください。

## Kinesis Data Streams を使用したデータストリームの作成
<a name="create-a-data-stream-using-a-ak-data-stream"></a>

次のコード例を使用して、Kinesis によって処理される情報を送信できる Kinesis データストリームを確立します。「Amazon Kinesis デベロッパーガイド」で[データストリームの作成および更新](https://docs.aws.amazon.com/kinesis/latest/dev/amazon-kinesis-streams.html)の詳細について参照してください。

Kinesis データストリームを作成するには、[CreateStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_CreateStream.html) オペレーションを使用します。

 **インポート**。

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

## データストリームを取得する
<a name="retrieve-a-data-stream"></a>

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

指定した Kinesis データストリームに関する詳細情報を取得するには、[DescribeStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStream.html) オペレーションを使用します。

 **インポート**。

```
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 に接続された既存のデータストリームのリスト
<a name="list-existing-data-streams-that-are-connected-to-ak"></a>

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

Kinesis データストリームをリストするには、[ListStreams](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListStreams.html) オペレーションを使用します。

 **インポート**。

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

## 既存のデータストリームにデータを送信する
<a name="send-data-to-an-existing-data-stream"></a>

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

1 つのデータレコードを Kinesis データストリームに書き込むには、[PutRecord](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html) オペレーションを使用します。最大 500 個のレコードを Kinesis データストリームに書き込むには、[PutRecord](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecords.html) オペレーションを使用します。

 **インポート**。

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

## データストリームを削除する
<a name="delete-a-data-stream"></a>

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

Kinesis データストリームを削除するには、[DeleteStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DeleteStream.html) オペレーションを使用します。

 **インポート**。

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