教程:使用 EventBridge 将事件发送到 Amazon Kinesis 流 - Amazon EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

教程:使用 EventBridge 将事件发送到 Amazon Kinesis 流

您可以将AmazonAPI 调用事件在 EventBridge 接到Amazon Kinesis 流,创建 Kinesis Data Streams 应用程序,并处理大量数据。在本教程中,您将创建 Kinesis 流,然后创建一个规则在 EventBridge 控制台中,当Amazon EC2实例停止。

Prerequisites

在本教程中,您将使用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 实例时将事件发送到流。

创建 规则

  1. 打开位于 https://console.aws.amazon.com/events/ 的 Amazon EventBridge 控制台。

  2. 在导航窗格中,选择 Rules (规则)

  3. 选择 Create rule (创建规则)

  4. 为规则输入名称和描述。

  5. 对于 Define pattern (定义模式),请执行以下操作:

    1. 选择 Event pattern

    2. 选择 Pre-defined pattern by service (服务预定义的模式)

    3. 对于 Service provider (服务提供商),选择 Amazon

    4. 对于 Service Name (服务名称),请选择 EMR。​

    5. 对于 Event type (事件类型),请选择 Instance State-change Notification (实例状态更改通知)

    6. 依次选择 Specific state(s) (特定状态)running (正在运行)

  6. 对于选择事件总线,选择 Amazon 默认事件总线。当Amazon服务发出一个事件,它会发送到您账户的默认事件总线。

  7. 对于 Targets (目标),选择 Kinesis stream (Kinesis 流)

  8. 适用于中,选择您在第 1 步中创建的流。

  9. 选择 Create a new role for this specific resource

  10. 选择创建

第 3 步:测试 规则

要测试规则,停止 Amazon EC2 实例。等待几分钟,以便实例停止,然后检查 CloudWatch 指标,以验证您的函数是否已运行。

通过停止一个实例来测试您的规则

  1. 打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 启动一个实例。有关更多信息,请参阅 。启动实例中的适用于 Linux 实例的 Amazon EC2 用户指南

  3. 打开位于 https://console.aws.amazon.com/events/ 的 Amazon EventBridge 控制台。

  4. 在导航窗格中,选择 Rules (规则)

    选择所创建规则的名称,然后选择 Metrics for the rule (规则的指标)

  5. (可选)当您完成后,终止该实例。有关更多信息,请参阅 。终止您的实例中的适用于 Linux 实例的 Amazon EC2 用户指南

第 4 步:验证事件是否已发送

您可以将Amazon CLI从流中获取记录,以验证事件是否已发送。

获取记录

  1. 要开始从 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=" }
  2. 要获取记录,请使用以下 get-records 命令。在上一步中,使用输出中的分片迭代程序。

    aws kinesis get-records --shard-iterator AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg=

    如果命令成功,它将从指定分片的流中请求记录。您可能会收到零个或多个记录。返回的任何记录都不能表示流中的所有记录。如果您未收到预期的数据,请继续调用 get-records

  3. Kinesis 记录在 Base64 中编码。使用 Base64 解码程序解码数据,以便您可以验证它是否是以 JSON 格式发送到流的事件。

第 5 步:清除资源

现在,您可以删除为本教程创建的资源,除非您想要保留它们。通过删除Amazon资源,可防止您不再使用Amazonaccount.

删除 EventBridge 梁规则

  1. 打开“规则” 页的 EventBridge 控制台。

  2. 选择您创建的规则。

  3. 选择 Delete

  4. 选择 Delete

删除 Kinesis 流

  1. 打开数据流页的 Kinesis 控制台。

  2. 选择您创建的流。

  3. 依次选择 ActionsDelete

  4. Enterdelete,然后选择Delete