使用 Kinesis Data Streams API 和AmazonSDK for PHP 版本 3 - Amazon适用于 PHP 的开发工具包
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Kinesis Data Streams API 和AmazonSDK for PHP 版本 3

Amazon Kinesis Data Streams 允许您发送实时数据。使用 Kinesis Data Stream 创建一个数据创建器,该创建器在您每次添加数据时将数据发送到配置的目的地。

有关更多信息,请参阅 。创建和管理流(在 Amazon Kinesis 开发人员指南中)。

以下示例演示如何:

所有示例AmazonSDK for PHP 版本 3(位于 GitHub 上).

Credentials

运行示例代码之前,请配置Amazon凭证,如的凭证AmazonSDK for PHP 版本 3. 然后导入AmazonSDK for PHP,如的基本使用模式AmazonSDK for PHP 版本 3.

有关使用 Amazon Kinesis 开发人员指南的更多信息,请参阅Amazon Kinesis Data Streams 开发人员指南.

使用 Kinesis 数据流创建数据流

建立 Kinesis 数据流,您可以在其中使用以下代码示例发送由 Kinesis 处理的信息。了解有关 的更多信息创建和更新数据流(在 Amazon Kinesis 开发人员指南中)。

要创建 Kinesis 数据流,请使用CreateStreamoperation.

导入

require 'vendor/autoload.php'; use Aws\Kinesis\KinesisClient; 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 个分片的信息。请记住StreamStatus,然后将数据写入 Kinesis 数据流。

要检索有关指定的 Kinesis 数据流的详细信息,请使用DescribeStreamoperation.

导入

require 'vendor/autoload.php'; use Aws\Kinesis\KinesisClient; 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 的现有数据流

列出您的前 10 个数据流Amazon帐户中的Amazon区域。使用返回的 `HasMoreStreams 来确定是否有更多与您的账户关联的流。

要列出 Kinesis 数据流,请使用ListStreamsoperation.

导入

require 'vendor/autoload.php'; use Aws\Kinesis\KinesisClient; 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"; }

将数据发送到现有数据流

在创建数据流后,请使用以下示例来发送数据。在向其发送数据之前,请使用 DescribeStream 检查数据 StreamStatus 是否处于活动状态。

要将一条数据记录写入 Kinesis 数据流,请使用PutRecordoperation. 要将最多 500 条数据记录写入 Kinesis 数据流,请使用PutRecordsoperation.

导入

require 'vendor/autoload.php'; use Aws\Kinesis\KinesisClient; 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 数据流切换到 DELETINT 状态,直到完成流删除操作。在处于 DELETING 状态时,流将继续处理数据。

要删除 Kinesis 数据流,请使用DeleteStreamoperation.

导入

require 'vendor/autoload.php'; use Aws\Kinesis\KinesisClient; 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"; }