跳至主要内容

Amazon EventBridge

Amazon EventBridge 常见问题

一般性问题

全部打开

Amazon EventBridge 是一种服务,可以实时访问 亚马逊云科技 服务、您自己的应用程序和软件即服务 (SaaS) 应用程序中的数据变化,无需编写代码。要开始使用,您可以在 Amazon EventBridge 控制台选择一个事件源,然后从包括 Amazon Lambda、Amazon SNS 和 Amazon Kinesis Data Firehose 在内的众多 亚马逊云科技 服务中选择一个目标。Amazon EventBridge 会近乎实时地自动传送事件。

登录您的亚马逊云科技账户,导航至 Amazon EventBridge 控制台,然后从合作伙伴 SaaS 应用程序和亚马逊云科技服务列表中选择一个事件源。如果您要使用合作伙伴应用程序,确保您已配置您的 SaaS 帐户来发送事件,并且在 Amazon EventBridge 控制台的“提供的事件源”部分中接受它。Amazon EventBridge 会自动为您创建一个事件总线,用于路由事件。或者,您可以使用 Amazon SDK 来配置您的应用程序,以开始向您的事件总线发送事件。选择性地配置一条过滤规则,为您的事件附加一个目标,例如,这可以是一个 Lambda 函数。Amazon EventBridge 会以一种安全且高度可用的方式,自动提取、过滤事件并将其发送至已配置的目标。

可以。客户可以生成自定义应用程序级事件,并通过服务的 API 将它们发布到 Amazon EventBridge。客户还可以设置定期生成的计划事件,并可以在 Amazon EventBridge 支持的任何目标中处理这些事件。

事件使用特定的 JSON 结构。每个事件都包含相同的顶级信封字段,例如事件源、时间戳和区域。后接详细信息字段,即事件的主体。例如,当 Amazon EC2 Auto Scaling 组创建一个新的 Amazon EC2 实例时,它会发送一个事件,源为:“aws.autoscaling”,详细信息为:“EC2 实例创建成功”。

Amazon EventBridge 与 Amazon Identity and Access Management (IAM) 集成,以便您指定您的亚马逊云科技帐户中的用户可以执行哪些操作。例如,您可以创建一个 IAM 策略,只为您的组织中的某些用户授予创建事件总线或附加事件目标的权限。

Amazon EventBridge 基于 CloudWatch 事件构建并对其进行扩展。它使用相同的服务 API 和终端节点,以及相同的底层服务基础设施。对于现有的 CloudWatch Events 客户,不会发生任何变化 - 您可以继续使用相同的 API、CloudFormation 模板和控制台。我们听到客户反馈,CloudWatch Events 是用于构建事件驱动型架构的理想服务,因此我们构建了新功能,让我们的客户能够连接来自自己的应用程序和第三方 SaaS 应用程序的数据。我们并未将这个功能放在 CloudWatch 服务下,而是以 Amazon EventBridge 的新名称进行发布,表示在 CloudWatch Events 适用的监控使用案例之外的扩展。

不需要。现有的 Amazon CloudWatch Events 用户可以在新的 Amazon EventBridge 控制台和 API,或者在 Amazon CloudWatch Events 控制台和 API 中访问它们现有的默认总线、规则和事件。

不会发生任何改变。Amazon EventBridge 使用相同的 Amazon CloudWatch Events API,因此您现有的所有 CloudWatch Events API 用法都将保持不变。

不,我们不会弃用 API 或服务本身。Amazon EventBridge 使用相同的 API,且增加了其他功能。Amazon CloudWatch Events 这个名称会逐渐被 Amazon EventBridge 取代。

共有 90 多项亚马逊云科技服务可以用作 EventBridge 的事件源,包括 Amazon LambdaAmazon Kinesis。如需查看完整的亚马逊云科技服务集成列表,请查看 EventBridge 文档

共有超过 15 项 亚马逊云科技 服务可用作 EventBridge 的事件目标,包括 Amazon LambdaAmazon SQSAmazon SNSAmazon Kinesis Streams。如需查看完整的 亚马逊云科技 服务集成列表,请查看 EventBridge 文档

限制和性能

全部打开

请查看此处的“服务限制”页面。

典型的延迟大约为半秒钟。注意,这个值可能会变化。

是的,您可以标记规则。您不能标记事件总线或事件源。

此处的“服务限制”页面说明了事件总线吞吐量限制。如果您需要更高的吞吐量,请选择“创建案例”,然后选择“提高服务限制”,通过 Amazon Web Services 支持中心请求提高服务限制。

Schema Registry

全部打开

Schema 代表事件的结构,通常包含事件中所含每条数据的标题和格式等信息。

例如,Schema 可能包含姓名和电话号码等字段,以及姓名属于文本字符串,而电话号码属于整数的事实。Schema 还可能包含有关模式的信息,例如要求电话号码的长度为 10 位。事件的 Schema 非常重要,因为它说明了事件中包含的信息,有助于您根据这些数据编写代码。

Schema 注册表用于存储可搜索的 Schema 集合,从而让组织中的所有开发人员都能更轻松地访问应用程序生成的 Schema,无需浏览文档或查找 Schema 的作者即可获取这些信息。您可以手动向注册表添加 Schema,也可以通过打开 EventBridge Schema 发现功能来自动执行此过程。

Schema 发现功能会自动查找 Schema 并将其添加到注册表。为 EventBridge 事件总线启用 Schema 发现功能后,系统会自动将发送到事件总线的每个事件的 Schema 添加到注册表中。如果事件的 Schema 发生更改,Schema 发现功能会在注册表中自动创建该 Schema 的新版本。

将 Schema 添加到注册表后,您可以在 EventBridge 控制台或直接在集成式开发环境(IDE)中为该 Schema 生成代码绑定。这有助您在代码中将事件表示为强类型对象。然后,您可以利用验证和自动完成等 IDE 功能。

可以,您可以在 Schema 发现中跨账户发现事件,从而全面了解发布到事件总线的事件 Schema。 

使用 Schema 注册表不会产生任何费用;但开启 Schema 发现功能时,您需要按摄取的事件付费。 Schema 发现功能的免费套餐限额为每月 500 万个摄取的事件。此免费套餐限额应该能够满足部分应用程序的运行需求。超出免费套餐限额的使用量需要额外付费。有关定价的更多信息,请参阅 EventBridge 定价页面

Schema 注册表通过以下方式来减少您编写代码的需求:
  • 自动识别发送到 EventBridge 事件总线的任何事件的 Schema,并将其存储在注册表中,从而让您无需手动管理事件 Schema。
  • 编写相应的应用程序来处理总线中的事件,为 Schema 生成并下载代码绑定,以便直接在代码中使用强类型对象。

代码绑定可以减少事件处理程序的反序列化、验证和猜测开销。

使用 Schema 注册表可以加快构建事件驱动型应用程序的速度。Schema 注册表可自动从任何支持的事件源(包括亚马逊云科技服务、第三方和自定义应用程序)中查找可用事件并检测其 Schema,从而节省在开发团队之间协调所需的时间。借助此功能,开发人员可以完全专注于自己的应用程序代码,而无需浪费宝贵的时间来搜索可用事件及其结构,以及编写代码来解释和转换事件。 

Schema 注册表支持 Amazon Toolkit for JetBrains(IntelliJ IDEA、PyCharm、WebStorm、Rider)和 Amazon Toolkit for Visual Studio Code,您还可以通过 EventBridge 控制台和 API 使用此功能。详细了解如何在 IDE 中使用 EventBridge Schema 注册表

可以,最新版本的 Amazon SAM CLI 包含了一种交互模式,您可以借助这种交互模式,在 EventBridge 上为任何作为事件类型的 Schema 创建新的无服务器应用程序。

选择 EventBridge Starter 应用程序模板和事件的 Schema 后,SAM 将使用 EventBridge 调用的一个 Lambda 函数自动生成一个应用程序,其中包含事件的处理代码。这意味着您可以将事件触发器视为代码中的普通对象,并在 IDE 中使用验证和自动完成等功能。

Amazon Toolkit for Jetbrains(Intellij IDEA、PyCharm、Webstorm、Rider)插件和 Amazon Toolkit for Visual Studio Code 还提供了相应的功能,仍您可以直接从这些 IDE 生成以 Schema 为触发器的无服务器应用程序。

EventBridge 支持以 Java(8+)、Python(3.6+)、TypeScript(3.0+)以及 Go(1+)等语言生成代码。

管道

全部打开

EventBridge Pipes 提供了一种更简单、一致且经济高效的方式来在事件生产者和使用者之间创建点对点集成。创建管道可简单至选择源和目标,并且可以自定义批处理、起始位置、并发性等。可选的筛选步骤仅允许特定的源事件流入管道,而使用 Amazon Lambda、Amazon Step Functions、API 目标或 Amazon API Gateway 的可选扩充步骤可用于在事件到达目标之前对其进行扩充或转换。由于无需编写、管理和扩展无差异的集成代码,EventBridge Pipes 可让您将时间用于构建应用程序,而不是用于连接应用程序。

您可以首先访问 EventBridge 控制台,选择“管道”选项卡,然后选择“创建管道”。接下来可以从可用来源列表中选择,并且提供一种可选的筛选模式,该模式将用于仅传输需要的事件。对于管道的可选转换和扩充步骤,可以提供 API 端点,例如 SaaS 应用程序 API 或容器集群、Lambda 函数或 Amazon Step Functions。然后,管道将发出 API 请求并在处理完成后获取响应。最后,设置要将事件交付至其中的目标服务,并指定是否需要在管道上启用存档或 DLQ 功能。也可以使用 Amazon CLI、CloudFormation 或 Amazon 云开发工具包(CDK)创建管道。

EventBridge Pipes 引入 Aamzon SQS、Amazon Kinesis、Amazon DynamoDB、Amazon Managed Streaming Kafka、自我管理 Kafka 和 Amazon MQ 作为 EventBridge 产品套件的来源。EventBridge Pipes 支持与事件总线相同的目标服务,例如 Amazon SQS、Amazon Step Functions、Amazon Kinesis Data Streams、Amazon Kinesis Data Firehose、Amazon SNS、Amazon ECS 和事件总线本身。

EventBridge Pipes 支持使用 Velocity 模板语言(VTL)进行基本转换。要进行更强大的转换,EventBridge Pipes 可以帮助您指定 Lambda 函数或 Step Functions 工作流程来转换事件。如果您更喜欢使用诸如 Amazon Elastic Container Service(ECS)或 Amazon Elastic Kubernetes Service(EKS)之类的容器服务,则可以为容器集群指定 API 端点和身份验证方案。然后,EventBridge 将负责交付事件以进行转换。

不需要,EventBridge Pipes 可以独立于现有 EventBridge 功能使用,这样就无需使用 EventBridge 事件总线即可接收来自其他事件生产者的事件,例如 Kinesis、SQS 或 Amazon MSK。EventBridge Pipes 还用于点对点集成,其中事件总线用于多对多集成。如果已经在使用 EventBridge 事件总线来路由事件,则可以使用 EventBridge Pipes 连接到支持的源并将事件总线设置为管道来源。

EventBridge 事件总线非常适合在事件驱动的服务之间进行多对多事件路由。EventBridge Pipes 旨在用于事件发布者和使用者之间的点对点集成,并支持高级转换和扩充。EventBridge Pipes 可以使用 EventBridge 事件总线作为目标。可以更轻松地从 EventBridge 事件总线规则迁移到管道,因为两个资源之间的筛选和目标保持相同。

Amazon Lambda 的事件源映射(ESM)和 Amazon EventBridge Pipes 使用相同的轮询基础设施来选择和发送事件。ESM 非常适合希望使用 Lambda 作为目标来处理所接收事件的客户。Pipes 非常适合如下客户:不想要担心创建、维护和扩展 Lambda 代码,而是更喜欢使用简单的托管资源将其源连接到 14 个以上目标中的一个。

是的,在将事件源发送到目标服务时,EventBridge Pipes 将保持从事件源所接收事件的顺序。

是的,对于支持批处理事件的服务,可以在创建管道时配置所需的批量大小。对于不支持批处理的源和目标,您仍然可以选择为扩充和转换步骤批处理事件。这可以帮助您节省计算成本,同时还能协助将事件单独交付至所选目标。

可以,要获取所有通过您的账户发起的 EventBridge Pipes API 调用的历史记录,只需在 Amazon Web Services 管理控制台中打开 CloudTrail 即可。

要查看 Amazon EventBridge Pipes 定价的完整详情,请访问定价页面

调度器

全部打开

Amazon EventBridge 调度器是一款无服务器任务调度器,无需预置或管理底层基础设施,即可简化 Amazon Web Services 服务中数百万个计划的创建、执行和管理。

登录您的亚马逊云科技账户,导航到 EventBridge 控制台,然后选择创建计划按钮。按照分布式工作流程操作,并填写必填字段。选择计划格式,包括要实施的任务的时间窗口、固定费率、cron 或特定的日期和时间。从亚马逊云科技服务列表中选择您的目标并配置重试策略,以最大程度地控制您的计划实施。查看您的计划,然后选择创建

EventBridge 调度器建立在计划规则中提供的计划功能之上。EventBridge 调度器包括对时区的支持、更大的扩展、自定义的目标有效载荷、新增的时间表达式以及用于监控计划的仪表板。可以独立创建计划,无需使用计划规则创建事件总线。

调度规则将继续可用,但是 EventBridge 调度器提供了更丰富的功能集,在创建、执行和管理计划时提供了更大的灵活性。您也可以免费开始使用,请参阅定价页面了解更多详情。

EventBridge 调度器与 Amazon Web Services 服务深度集成,可以通过亚马逊网络服务 API 操作为任何服务创建计划。时间模式和重试的配置在整个 Amazon Web Services 中是统一的,以提供一致的计划体验。通过 EventBridge 调度器控制台在控制面板中或通过 “ListSchedule” API 请求提供计划视图,可以更轻松地监控计划。您将能够看到计划中的重要信息,例如开始时间、上次运行时间和分配的 Amazon Web Services 目标。如需更详细的详细信息,您可以在 CloudWatch Logs 中查看执行日志,也可以将它们发送到 S3 或 Kinesis Firehose。

您可以通过选择要修改的计划在 EventBridge 调度器控制台中更新您的计划。一个新面板将显示您可以选择的选项。

是的,使用 EventBridge 调度器,您可以选择计划的运行时区。这些计划将自动调整为夏令时 (DST) 然后再恢复到标准时间。

EventBridge 调度器可向目标发送至少一次事件交付,这意味着至少有一次交付成功并得到目标的响应。可以通过设置重试、时间窗口和超时的选项来满足您的业务需求。

完成后删除适用于当前支持的所有计划模式:cron、rate 和一次性计划。

可以,在调用计划之前,您可以随时更新计划以配置完成后删除。在最后一次调用计划之后,您将无法进行更改。

如果您在计划的最后一次调用之前禁用了带有完成后删除设置的计划,则该计划将以禁用状态保留在您的账户中。

该计划将继续调用其目标,并且在设定结束日期之前不会自动删除。

EventBridge 调度器不支持直接调用非亚马逊云科技目标。但是,您可以使用 LambdaECSFargate 调用非亚马逊云科技目标,也可以通过 API 目标功能使用 EventBridge 调用非亚马逊云科技目标。

要查看 Amazon EventBridge 调度器定价的完整详情,请访问定价页面

成本和账单

全部打开

请查看此处的定价。

不需要。

架构和设计

全部打开

可以。这些事件被称为交叉账户事件,您可以使用默认事件总线作为目标,或者使用另一个帐户中的任何其他事件总线作为目标。

Amazon CloudFormation 支持规则和 EventBusPolicy 资源。事件总线和事件源资源尚不受支持,但是未来会支持。

Amazon EventBridge 和 Amazon SNS 都可用于开发事件驱动型应用程序,您可以根据您的具体需求来选择。如果您想要构建一个会对来自 SaaS 应用程序和/或 Amazon Web Services 服务的事件做出反应的应用程序,建议使用 Amazon EventBridge。Amazon EventBridge 是唯一与第三方 SaaS 合作伙伴直接集成的基于事件的服务。Amazon EventBridge 还会自动从 90 多项 Amazon Web Services 服务中提取事件,无需开发人员在他们的账户中创建任何资源。此外,Amazon EventBridge 使用基于 JSON 的已定义事件结构,让您能够创建应用于整个事件主体的规则,以选择要转发到目标的事件。Amazon EventBridge 目前支持超过 15 项 Amazon Web Services 服务作为目标,包括 Amazon Lambda、Amazon SQS、Amazon SNS、Amazon Kinesis Streams 和 Firehose 等。推出时,Amazon EventBridge 具备有限的吞吐量(查看“服务限制”),可以根据要求提高,典型的延迟约为半秒。
如果您想要构建一个对其他应用程序或微服务发布的高吞吐量或低延迟消息做出反应的应用程序,或者对于需要极高的扇出(无以计数的终端节点)的应用程序,建议使用 Amazon SNS(因为 Amazon SNS 提供几乎无限的吞吐量)。消息是非结构化的,可以采用任何格式。Amazon SNS 支持向 6 种不同类型的目标转发消息,包括 Amazon Lambda、Amazon SQS、HTTP/S 终端节点、SMS、Mobile Push 和电子邮件。Amazon SNS 的典型延迟低于 30 毫秒。广泛的 Amazon Web Services 服务通过配置服务来发送 SNS 消息(超过 30 项,包括 Amazon EC2、Amazon S3 和 Amazon RDS)。

合作伙伴

全部打开

Amazon EventBridge 让 SaaS 供应商能够轻松将他们的服务集成到客户在 Amazon Web Services 构建的事件驱动型架构中。Amazon EventBridge 让数百万 Amazon Web Services 开发人员能够直接访问您的产品,由此解锁新的使用案例。它提供一个完全可审计、安全且可扩展的路径来发送事件,无需 SaaS 供应商来管理任何事件基础设施。

对于业已支持 webhook 或其他推送型集成模式的合作伙伴,预计只需执行不到 5 天的开发,即可与 Amazon EventBridge 集成。