本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用将事件发送到 Amazon Kinesis 流EventBridge
本教程中的创建规则部分已过时,并且即将更新。
您可以发送AmazonAPI 调用事件在EventBridge到Amazon Kinesis 流,创建 Kinesis Data Streams 应用程序,并处理大量数据。在本教程中,您将创建 Kinesis 流,然后创建规则中的EventBridge控制台,当Amazon EC2实例停止。
先决条件
在本教程中,您将使用Amazon CLI与 Kinesis 直播一起工作。
安装Amazon CLI,请参阅安装、更新和卸载Amazon CLI版本 2.
第 1 步:创建 Amazon Kinesis 流
要创建流,请在命令提示符处,使用create-stream
Amazon CLI命令。
aws kinesis create-stream --stream-name
test
--shard-count 1
当流状态为 ACTIVE
时,表示流已就绪。要检查流状态,请使用describe-stream
命令。
aws kinesis describe-stream --stream-name
test
第 2 步:创建规则
创建一条规则,以便在您停止 Amazon EC2 实例时将事件发送到流。
创建 规则
打开 AmazonEventBridge控制台https://console.aws.amazon.com/events/
. -
在导航窗格中,选择 Rules (规则)。
-
选择 Create rule (创建规则)。
-
为规则输入名称和描述。
-
对于定义模式,请执行以下操作:
-
选择 Event pattern (事件模式)。
-
选择 Pre-defined pattern by service (服务预定义的模式)。
-
对于服务提供商,选择 Amazon。
-
对于 Service Name (服务名称),请选择 EC2。
-
对于 Event type (事件类型),请选择 Instance State-change Notification (实例状态更改通知)。
-
依次选择 Specific state(s) (特定状态) 和 running (正在运行)。
-
-
对于 Select event bus (选择事件总线),选择 Amazon default event bus (亚马逊云科技默认事件总线)。当您时Amazon您账户中的服务发出一个事件,它会发送到您账户的默认事件总线。
-
对于 Targets (目标),选择 Kinesis stream (Kinesis 流)。
-
适用于流中,选择您在第 1 步中创建的流。
-
选择 Create a new role for this specific resource。
-
请选择创建。
第 3 步:测试 规则
为了测试规则,停用一个 Amazon EC2 实例。等待几分钟,以便实例停止,然后检查您的CloudWatch指标,以验证您的函数是否已运行。
通过停止一个实例来测试您的规则
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
启动一个实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的启动您的实例。
打开 AmazonEventBridge控制台https://console.aws.amazon.com/events/
. -
在导航窗格中,选择 Rules (规则)。
选择所创建规则的名称,然后选择 Metrics for the rule (规则的指标)。
-
(可选)当您完成后,终止该实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的终止实例。
第 4 步:验证事件是否已发送
您可以使用Amazon CLI以便从流中获取记录,以验证事件是否已发送。
获取记录
-
要开始从 Kinesis 流中读取数据,请在命令提示符处,使用
get-shard-iterator
命令。aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name
test
下面是示例输出。
{ "ShardIterator": "AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg=" }
-
要获取记录,请使用以下
get-records
命令。使用上一步中输出中的分片迭代器。aws kinesis get-records --shard-iterator
AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg=
如果命令成功,它将从指定分片的流中请求记录。您可能会收到零个或多个记录。返回的任何记录都不能表示流中的所有记录。如果您未收到预期的数据,请继续调用
get-records
。 -
Kinesis 中的记录以 Base64 编码。使用 Base64 解码程序解码数据,以便验证它是否是以 JSON 格式发送到流的事件。
第 5 步:清除 资源
除非您想要保留为本教程创建的资源,否则可立即将其删除。通过删除Amazon您不再使用的资源,可防止您的产生不必要的费用。Amazonaccount.
删除EventBridge规则
-
打开“规则” 页
的EventBridge控制台。 -
选择您创建的规则。
-
选择 Delete。
-
选择 Delete。
删除 Kinesis 流
-
打开数据流
的 Kinesis 控制台。 -
选择您创建的流。
-
依次选择 Actions(操作)和 Delete(删除)。
-
Enter删除在现场然后选择Delete.