适用于 PHP 的 AWS 开发工具包
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

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

有关更多信息,请参阅 Amazon Kinesis Data Streams Developer Guide 中的创建和管理流

以下示例演示如何:

GitHub 上的此处提供了AWS SDK for PHP版本 3 的所有示例代码。

凭证

在运行示例代码之前,您需要配置 AWS 凭证,如适用于 PHP 的 AWS 开发工具包版本 3 的凭证中所述。然后导入AWS SDK for PHP,如适用于 PHP 的 AWS 开发工具包版本 3 的基本使用模式中所述。

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

使用 Kinesis Data Stream 创建数据流

建立一个 Kinesis 数据流,您可以在其中使用以下代码示例发送由 Kinesis 处理的信息。了解 Amazon Kinesis Data Streams Developer Guide 中有关创建和更新数据流的更多信息。

要创建 Kinesis 数据流,请使用 CreateStream 操作。

导入

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 个分片的信息。在将数据写入 Kinesis 数据流之前,请记住检查响应中的 StreamStatus

要检索有关指定的 Kinesis 数据流的详细信息,请使用 DescribeStream 操作。

导入

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 的现有数据流

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

要列出 Kinesis 数据流,请使用 ListStreams 操作。

导入

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 数据流,请使用 PutRecord 操作。要将最多 500 条数据记录写入 Kinesis 数据流,请使用 PutRecords 操作。

导入

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 数据流切换到 DELETING 状态,直到完成流删除操作。在处于 DELETING 状态时,流将继续处理数据。

要删除 Kinesis 数据流,请使用 DeleteStream 操作。

导入

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