使用 Kinesis Data Streams API 创建数据流Amazon SDK for PHP版本 3 - Amazon SDK for PHP
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用 Kinesis Data Streams API 创建数据流Amazon SDK for PHP版本 3

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

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

以下示例演示如何:

Amazon SDK for PHPGitHub 上提供了的所有示例代码。

凭证

运行示例代码之前,请配置您的Amazon凭证,如中所述设置 凭证. 然后导入Amazon SDK for PHP,如中所述基本用法.

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

使用 Kinesis Data Streams 创建数据流

使用以下代码示例建立 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 Data Streams 的详细信息,请使用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 Data Streams 切换到删除状态,直到完成流删除操作。在处于 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"; }