概述

问:什么是 Amazon EventBridge?

Amazon EventBridge 是一项服务,让用户无需编写代码即可实时了解 AWS 服务、自己的应用程序以及软件即服务 (SaaS) 应用程序中的数据的变化。要开始使用,您可以在 Amazon EventBridge 控制台中选择一个事件源,然后从 AWS Lambda、Amazon SNS 和 Amazon Kinesis Data Firehose 等多种 AWS 服务中选择一个目标即可。Amazon EventBridge 会近乎实时地自动传输事件。

问:如何开始使用 Amazon EventBridge?

登录您的 AWS 账户,进入 Amazon EventBridge 控制台,然后从合作伙伴 SaaS 应用程序和 AWS 服务列表中选择一个事件源。如果您使用合作伙伴应用程序,请将您的 SaaS 账户配置为可以发送事件,并在 Amazon EventBridge 控制台中的事件源部分接受合作伙伴应用程序事件。Amazon EventBridge 会自动创建一个用于将事件路由到其中的事件总线。此外,您也可以使用 AWS 软件开发工具包来设置应用程序,使其向事件总线发送事件。您可以选择性配置过滤规则并指定事件的目标,例如 Lambda 函数。Amazon EventBridge 会以安全而高度可用的方式接收和过滤事件,并将事件发送到配置的目标。

问:能否将自己的事件推送到 Amazon EventBridge?

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

问:事件采用什么格式?

事件采用特定的 JSON 结构。每个事件都有相同的顶级信封字段,其中包含事件源、时间戳和区域等项目。这一字段的后面是详情字段,详情字段是事件的正文。例如,当 Amazon EC2 Auto Scaling 组创建新的 Amazon EC2 实例时,其发送的事件的事件源为“aws.autoscaling”,详情为“成功创建 EC2 实例”。

问:如何过滤传输到目标的事件?

您可以使用规则来筛选事件。规则会针对给定的事件总线匹配传入的事件,然后将其路由到目标进行处理。一项规则可以将事件路由到多个目标进行并行处理。规则可以让不同的应用程序组件查找和处理自己想要处理的事件。规则可以对事件进行自定义(例如只传输特定部分或者使用常量覆盖事件),然后再将其发送到目标。以上一个问题中的示例为例,您可以创建一项事件规则,使其匹配事件源“aws.autoscaling”和详情“成功创建 EC2 实例”,这样您就可以在 Auto Scaling 组成功创建 Amazon EC2 实例时收到通知。

问:如何保证对 Amazon EventBridge 的访问的安全性?

Amazon EventBridge 集成了 AWS Identity and Access Management (IAM),因此您可以指定自己的 AWS 账户中的用户可以执行哪些操作。例如,您可以创建一项 IAM 策略,只向组织中的特定用户授予创建事件总线或指定事件目标的权限。

问:Amazon EventBridge 与 CloudWatch Events 有什么关系?

Amazon EventBridge 建立在 CloudWatch Events 的基础上,是对 CloudWatch Events 的扩充。二者使用相同的服务 API 和终端节点,使用相同的底层服务基础设施。对于现有的 CloudWatch Events 客户来说,什么都没有改变,客户可以继续使用相同的 API、CloudFormation 模板和控制台。有客户表示,CloudWatch Events 是构建事件驱动型架构的理想服务,因此我们开发了一些新功能,让客户能够从自己的应用程序和第三方 SaaS 应用程序连接数据。我们没有将这一功能保留在 CloudWatch 服务中,而是使用 Amazon EventBridge 这个新名称来发布这一功能,用于体现我们在 CloudWatch Events 的监控使用场景的基础上进行的扩充。

问:我现在使用 Amazon CloudWatch Events,想要试用 Amazon EventBridge 的功能。我是否需要把 Amazon CloudWatch Events 规则和权限转移到 Amazon EventBridge?

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

问:我已经在使用 Amazon CloudWatch Events,不需要 Amazon EventBridge 的功能。对我来说会有什么改变?

没有改变。Amazon EventBridge 使用与 Amazon CloudWatch Events 相同的 API,因此对现有 CloudWatch Events API 的所有使用方式均保持不变。

问:亚马逊是否会弃用 Amazon CloudWatch Events?

不会。我们不会弃用该服务或其 API。Amazon EventBridge 使用相同的 API 并增加了额外的功能。随着时间的推移,Amazon CloudWatch Events 的名称将会被替换为 Amazon EventBridge。

问:哪些 AWS 服务被集成为 Amazon EventBridge 的事件源?

有 90 多项 AWS 服务可以用作 EventBridge 的事件源,其中包括 AWS Lambda、Amazon Kinesis 和 AWS Fargate。要查看集成的 AWS 服务的完整列表,请参阅 EventBridge 文档

问:哪些 AWS 服务被集成为 Amazon EventBridge 的事件目标?

有超过 15 项 AWS 服务可以用作 EventBridge 的事件目标,其中包括 AWS Lambda、Amazon SQS、Amazon SNS、Amazon Kinesis Streams 和 Amazon Kinesis Firehose。要查看集成的 AWS 服务的完整列表,请参阅 EventBridge 文档

限制和性能

问:有哪些服务限制?

请参阅此处的“服务限制”页面。

问:发送与接收事件之间的延迟有多长?

典型延迟约为半秒。但要视具体情况而定。

问:Amazon EventBridge 是否支持资源标记?

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

问:Amazon EventBridge 的吞吐量有多大?

此处的“服务限制”页面给出了事件总线的吞吐量限制。 如果您需要更高的吞吐量,请在 AWS 支持中心选择“创建问题”,然后选择“放宽服务限制”,申请放宽服务限制。

问:EventBridge 是否有服务等级协议?
有。AWS 将采取商业上合理的措施,确保在每个 AWS 区域,EventBridge 在任何月度结算周期的月度正常运行时间百分比至少达到 99.99%。有关详细信息,请查看完整的 EventBridge 服务等级协议

Schema 注册表

问:什么是 Schema?

Schema 表示事件的结构,通常包括事件中所包含的各种数据的标题和格式等信息。例如,Schema 可能包括名称和电话号码等字段,而名称其实为文本串,电话号码为整数。Schema 还可能包括模式信息,例如要求电话号码的长度为 10 位数。事件 Schema 非常重要,因为它显示了事件中包含了哪些信息,并允许您根据这些数据类编写代码。

问:什么是 Schema 注册表?

Schema 注册表可以存储可搜索 Schema 集,这样您组织中的任何开发人员都可轻松访问应用程序所生成的 Schema,而不必浏览文档或查找 Schema 作者以获取此信息。您可以手动将 Schema 添加到注册表中,或者通过启用 EventBridge Schema 发现功能自动执行该过程。

问:什么是 Schema 发现功能?

Schema 发现功能可自动执行查找 Schema 并将其添加至注册表的过程。启用 EventBridge 事件总线的 Schema 发现功能后,系统会将发送至事件总线的每个事件的 Schema 自动添加至注册表。如果事件的 Schema 发生更改,Schema 发现会在注册表中自动创建新版本的 Schema。Schema 添加至注册表后,您可以在 EventBridge 控制台或直接在 IDE 中生成该 Schema 的代码绑定,从而在代码中以强类型对象形式来表示该事件,并利用验证和自动完成等 IDE 功能。

问:我是否可以发现其他账户中所传输事件的 Schema?

Schema 发现功能仅适用于默认、自定义和合作伙伴事件总线上发现程序同一账户中发起的事件。

问:Schema 注册表如何收费?

Schema 注册表是免费使用的,但当您打开 Schema 发现功能时将会按所摄取的事件数量收费。Schema 发现功能包括每月 500 万个摄取事件的免费套餐,这应该可涵盖大多数开发使用案例。对于免费套餐之外的额外使用量,将按每 100 万个摄取事件 0.10 USD 的标准收费。有关定价的更多信息,请参阅 EventBridge 定价页面

问:Schema 注册表如何减少所需编写的代码数量?

首先,您可以使用 Schema 发现来自动识别发送至 EventBridge 事件总线的任何事件的 Schema,然后将其存储在注册表中,因而无需手动管理事件 Schema。其次,当您编写在总线中处理事件的应用程序时,您可以生成和下载此 Schema 的代码绑定,从而在代码中直接使用强类型对象。这便可以节省事件处理程序的反序列化、验证和猜测开销。

问:为何应该使用 Schema 注册表?

使用 Schema 注册表时,EventBridge 可让您更快速地开发事件驱动型应用程序,从而专注于应用程序代码本身。之前,您需要查找可用的事件及其结构,然后编写代码以解释事件并将其转换为代码可理解的格式。现在通过使用 Schema 注册表,您可以自动查找任何支持事件源(包括 AWS 服务、第三方和自定义应用程序)中可用的事件,并检测其 Schema。

问:Schema 注册表支持哪些 IDE?

Schema 注册表可通过 Jetbrains(Intellij、PyCharm、Webstorm、Rider) 和 VS 代码的 AWS 工具包以及 EventBridge 控制台和 API 中获得。了解有关使用 IDE 中 EventBridge Schema 注册表的更多信息。

问:Schema 是否可以与 Serverless Application Model (SAM) 一起使用?

可以,最新版本的 SAM CLI 包含交互模式,允许您在 EventBridge 中为任何 Schema 以事件类型创建新的无服务器应用程序。只需选择“EventBridge Starter App”模板和您的事件的 Schema,SAM 将使用 EventBridge 所调用的 Lambda 函数自动生成应用程序,其中包含该事件的处理代码。这意味着您可以将事件触发视为代码中的一般对象,并使用 IDE 中的验证和自动完成等功能。

Jetbrains(Intellij、PyCharm、Webstorm、Rider) 和 VS 代码的 AWS 工具包插件还提供将 Schema 作为触发器,通过这些 IDE 中的模板直接生成无服务器应用程序的功能。

问:我可以使用哪些语言从我的 Schema 生成代码?

支持以 Java (8+)、Python (3.6+) 和 Typescript (3.0+) 语言生成代码。

问:Schema 注册表在哪些区域可用?

EventBridge Schema 注册表在以下区域推出:美国东部(俄亥俄和弗吉尼亚北部)、美国西部(俄勒冈和加利福尼亚北部)、加拿大(中部)、欧盟(斯德哥尔摩、巴黎、爱尔兰、法兰克福和伦敦)、亚太地区(孟买、东京、首尔、新加坡、香港和悉尼)以及南美洲(圣保罗)。

费用与账单

问:EventBridge 的费用如何?

请参见此处的定价。

问:如果合作伙伴将事件发送到事件源,而该事件源没有连接事件总线,我是否需要支付费用?

不需要。

架构和设计

问:能否让目标把事件发送到另一个账户?

可以。这种事件称为跨账户事件,您可以将一个目标用作其他账户的默认事件总线或任何其他事件总线。

问:AWS CloudFormation 能否与 Amazon EventBridge 一起使用?

AWS CloudFormation 支持规则和事件总线策略这两种资源。事件总线和事件源目前不受支持,但我们会在将来添加对这两种资源的支持。

问:什么时候应该使用 Amazon EventBridge?什么时候应该使用 Amazon SNS?

Amazon EventBridge 和 Amazon SNS 都可以用于开发事件驱动型应用程序,您可以根据自己的具体需求做出选择。如果您想要构建的应用程序需要对来自 SaaS 应用程序和/或 AWS 服务的事件做出反应,建议您使用 Amazon EventBridge。Amazon EventBridge 是直接与第三方 SaaS 合作伙伴集成的唯一一种基于事件的服务。Amazon EventBridge 还可以自动接收来自 90 多种 AWS 服务的事件,不需要开发人员在账户中创建任何资源。此外,Amazon EventBridge 使用基于 JSON 并且明确的事件结构,让您能够创建应用于整个事件正文的规则,以便选择要发送到目标的事件。Amazon EventBridge 目前支持用作目标的 AWS 服务超过 15 种,其中包括 AWS Lambda、Amazon SQS、Amazon SNS 以及 Amazon Kinesis Streams 和 Firehose 等。Amazon EventBridge 最初设有吞吐量限制(参见“服务限制”),但您可以申请放宽限制。典型延迟约为半秒。

如果您想要构建的应用程序需要对其他应用程序或微服务发布的高吞吐量或低延迟消息做出反应,或者应用程序需要非常高的扇出(数千甚至数百万个终端节点),建议您使用 Amazon SNS,因为其可以提供几乎无限的吞吐量。消息为非结构化消息,可以采用任何格式。Amazon SNS 支持将消息发送到 6 种类型的目标,包括 AWS Lambda、Amazon SQS、HTTP/S 终端节点、SMS、移动推送和电子邮件。Amazon SNS 的典型延迟不超过 30 毫秒。您可以对包括 Amazon EC2、Amazon S3 和 Amazon RDS 在内的 30 多种 AWS 服务进行配置,使其发送 SNS 消息。

集成

问:我为什么要把 SaaS 应用程序与 Amazon EventBridge 集成?

Amazon EventBridge 可以让 SaaS 供应商将其服务轻松集成到客户构建在 AWS 上的事件驱动型架构中。Amazon EventBridge 让数百万 AWS 开发人员能够直接使用您的产品,并创造出各种新的使用场景。这一服务可以提供可审计、安全并且可扩展的事件发送通道,无需 SaaS 供应商管理任何事件处理基础设施。

问:我想让自己的 SaaS 公司成为事件源。应该怎样操作?

想要成为 Amazon EventBridge 合作伙伴的供应商应该在 Amazon EventBridge 集成页面按照自助说明进行操作,然后才能向 Amazon EventBridge 发布事件。

问:SaaS 供应商需要进行多少工作才能与 Amazon EventBridge 集成?

对于已经支持 Webhook 或其他基于推送的集成模式的 SaaS 供应商,与 Amazon EventBridge 集成需要进行不到 5 天的开发工作。

问:支持哪些 SaaS 集成?

要了解支持的集成的完整列表,请参阅此处
 

Product-Page_Standard-Icons_01_Product-Features_SqInk
了解有关 Amazon EventBridge 集成的更多信息

访问 Amazon EventBridge 集成页面。

了解更多 
Product-Page_Standard-Icons_03_Start-Building_SqInk
开始在控制台中构建

在 AWS 管理控制台中,使用 Amazon EventBridge 开始构建。

登录 
Product-Page_Standard-Icons_02_Sign-Up_SqInk
有关更多信息,请参阅文档

请参阅开发人员指南,深入了解 EventBridge。

了解更多