一般性问题
问:什么是 Amazon EventBridge?
Amazon EventBridge 是一种服务,可以实时访问 亚马逊云科技 服务、您自己的应用程序和软件即服务 (SaaS) 应用程序中的数据变化,无需编写代码。要开始使用,您可以在 Amazon EventBridge 控制台选择一个事件源,然后从包括 Amazon Lambda、Amazon SNS 和 Amazon Kinesis Data Firehose 在内的众多 亚马逊云科技 服务中选择一个目标。Amazon EventBridge 会近乎实时地自动传送事件。
问:如何开始使用 Amazon EventBridge?
登录您的 亚马逊云科技 账户,导航至 Amazon EventBridge 控制台,然后从合作伙伴 SaaS 应用程序和 亚马逊云科技 服务列表中选择一个事件源。如果您要使用合作伙伴应用程序,确保您已配置您的 SaaS 帐户来发送事件,并且在 Amazon EventBridge 控制台的“提供的事件源”部分中接受它。Amazon EventBridge 会自动为您创建一个事件总线,用于路由事件。或者,您可以使用 Amazon SDK 来配置您的应用程序,以开始向您的事件总线发送事件。选择性地配置一条过滤规则,为您的事件附加一个目标,例如,这可以是一个 Lambda 函数。Amazon EventBridge 会以一种安全且高度可用的方式,自动提取、过滤事件并将其发送至已配置的目标。
问:我可以将自己的事件发布到 Amazon EventBridge 中吗?
可以。客户可以生成自定义应用级事件,并通过服务的 API 将它们发布到 Amazon EventBridge。客户还可以设置定期生成的计划事件,并可以在 Amazon EventBridge 支持的任何目标中处理这些事件。
问:事件的格式是什么?
事件使用特定的 JSON 结构。每个事件都包含相同的顶级信封字段,例如事件源、时间戳和区域。后接详细信息字段,即事件的主体。例如,当 Amazon EC2 Auto Scaling 组创建一个新的 Amazon EC2 实例时,它会发送一个事件,源为:
问:如何确保安全访问 Amazon EventBridge?
Amazon EventBridge 与 Amazon Identity and Access Management (IAM) 集成,以便您指定您的 亚马逊云科技 帐户中的用户可以执行哪些操作。例如,您可以创建一个 IAM 策略,只为您的组织中的某些用户授予创建事件总线或附加事件目标的权限。
问:Amazon EventBridge 如何与 CloudWatch 事件关联?
Amazon EventBridge 基于 CloudWatch 事件构建并对其进行扩展。它使用相同的服务 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 取代。
问:集成了哪些 亚马逊云科技 服务作为 Amazon EventBridge 的事件源?
共有 90 多项 亚马逊云科技 服务可以用作 EventBridge 的事件源,包括 Amazon Lambda 和 Amazon Kinesis。如需查看完整的 亚马逊云科技 服务集成列表,请查看 EventBridge 文档。
问:集成了哪些 亚马逊云科技 服务作为 Amazon EventBridge 的事件目标?
共有超过 15 项 亚马逊云科技 服务可用作 EventBridge 的事件目标,包括 Amazon Lambda、Amazon SQS、Amazon SNS 和 Amazon Kinesis Streams。如需查看完整的 亚马逊云科技 服务集成列表,请查看 EventBridge 文档。
Schema Registry
问:什么是 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 发现功能时,您需要按摄取的事件付费。 Schema 发现功能的免费套餐限额为每月 500 万个摄取的事件。此免费套餐限额应该能够满足部分应用程序的运行需求。超出免费套餐限额的使用量需要额外付费。有关定价的更多信息,请参阅 EventBridge 定价页面。
问:Schema 注册表是如何减少代码编写需求的?
Schema 注册表通过以下方式来减少您编写代码的需求:
- 自动识别发送到 EventBridge 事件总线的任何事件的 Schema,并将其存储在注册表中,从而让您无需手动管理事件 Schema。
- 编写相应的应用程序来处理总线中的事件,为 Schema 生成并下载代码绑定,以便直接在代码中使用强类型对象。
代码绑定可以减少事件处理程序的反序列化、验证和猜测开销。
问:为什么要使用 Schema 注册表?
使用 Schema 注册表可以加快构建事件驱动型应用程序的速度。Schema 注册表可自动从任何支持的事件源(包括亚马逊云科技服务、第三方和自定义应用程序)中查找可用事件并检测其 Schema,从而节省在开发团队之间协调所需的时间。借助此功能,开发人员可以完全专注于自己的应用程序代码,而无需浪费宝贵的时间来搜索可用事件及其结构,以及编写代码来解释和转换事件。
问:Schema 注册表支持哪些 IDE?
Schema 注册表支持 Amazon Toolkit for JetBrains(IntelliJ IDEA、PyCharm、WebStorm、Rider)和 Amazon Toolkit for Visual Studio Code,您还可以通过 EventBridge 控制台和 API 使用此功能。详细了解如何在 IDE 中使用 EventBridge Schema 注册表。
问:我能否将 Schema 与 Amazon Serverless Application Model(SAM)中使用结合使用?
可以,最新版本的 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 为触发器的无服务器应用程序。
问:我可以用哪些语言从我的 Schema 生成代码?
EventBridge 支持以 Java(8+)、Python(3.6+)、TypeScript(3.0+)以及 Go(1+)等语言生成代码。
Pipes
问:什么是 Amazon EventBridge Pipes?
EventBridge Pipes 提供了一种更简单、一致且经济高效的方式来在事件生产者和使用者之间创建点对点集成。创建管道可简单至选择源和目标,并且可以自定义批处理、起始位置、并发性等。可选的筛选步骤仅允许特定的源事件流入管道,而使用 Amazon Lambda、Amazon Step Functions、API 目标或 Amazon API Gateway 的可选扩充步骤可用于在事件到达目标之前对其进行扩充或转换。由于无需编写、管理和扩展无差异的集成代码,EventBridge Pipes 可让您将时间用于构建应用程序,而不是用于连接应用程序。
问:如何开始使用 EventBridge Pipes?
您可以首先访问 EventBridge 控制台,选择“管道”选项卡,然后选择“创建管道”。接下来可以从可用来源列表中选择,并且提供一种可选的筛选模式,该模式将用于仅传输需要的事件。对于管道的可选转换和扩充步骤,可以提供 API 端点,例如 SaaS 应用程序 API 或容器集群、Lambda 函数或 Amazon Step Functions。然后,管道将发出 API 请求并在处理完成后获取响应。最后,设置要将事件交付至其中的目标服务,并指定是否需要在管道上启用存档或 DLQ 功能。也可以使用 Amazon CLI、CloudFormation 或 Amazon 云开发工具包(CDK)创建管道。
问:EventBridge Pipes 可能有哪些事件源?
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 事件总线以使用 EventBridge Pipes 吗?
不需要,EventBridge Pipes 可以独立于现有 EventBridge 功能使用,这样就无需使用 EventBridge 事件总线即可接收来自其他事件生产者的事件,例如 Kinesis、SQS 或 Amazon MSK。EventBridge Pipes 还用于点对点集成,其中事件总线用于多对多集成。如果已经在使用 EventBridge 事件总线来路由事件,则可以使用 EventBridge Pipes 连接到支持的源并将事件总线设置为管道来源。
问:EventBridge 事件总线和 EventBridge Pipes 有什么区别?
EventBridge 事件总线非常适合在事件驱动的服务之间进行多对多事件路由。EventBridge Pipes 旨在用于事件发布者和使用者之间的点对点集成,并支持高级转换和扩充。EventBridge Pipes 可以使用 EventBridge 事件总线作为目标。可以更轻松地从 EventBridge 事件总线规则迁移到管道,因为两个资源之间的筛选和目标保持相同。
问:EventBridge Pipes 与 Amazon Lambda 的事件源映射(ESM)有什么区别?
Amazon Lambda 的事件源映射(ESM)和 Amazon EventBridge Pipes 使用相同的轮询基础设施来选择和发送事件。ESM 非常适合希望使用 Lambda 作为目标来处理所接收事件的客户。Pipes 非常适合如下客户:不想要担心创建、维护和扩展 Lambda 代码,而是更喜欢使用简单的托管资源将其源连接到 14 个以上目标中的一个。
问:EventBridge Pipes 是否提供排序保证?
是的,在将事件源发送到目标服务时,EventBridge Pipes 将保持从事件源所接收事件的顺序。
问:EventBridge Pipes 是否支持批处理事件?
是的,对于支持批处理事件的服务,可以在创建管道时配置所需的批量大小。对于不支持批处理的源和目标,您仍然可以选择为扩充和转换步骤批处理事件。这可以帮助您节省计算成本,同时还能协助将事件单独交付至所选目标。
问:我能否获得从我的账户发起的所有 EventBridge Pipes API 调用的历史记录,以便用于安全分析和运营故障排除?
可以,要获取所有通过您的账户发起的 EventBridge Pipes API 调用的历史记录,只需在 Amazon Web Services 管理控制台中打开 CloudTrail 即可。
问:EventBridge Pipes 的费用是多少?
要查看 Amazon EventBridge Pipes 定价的完整详情,请访问定价页面。
成本和账单
问:EventBridge 需要花费多少成本?
请查看此处的定价。
问:如果合作伙伴将事件发送至未附加事件总线的事件源,我需要为此付费吗?
不需要。
架构和设计
问:我可以拥有一个向另一个帐户发送事件的目标吗?
可以。这些事件被称为交叉帐户事件,您可以使用默认事件总线作为目标,或者使用另一个帐户中的任何其他事件总线作为目标。
问:我可以在 Amazon EventBridge 中使用 Amazon CloudFormation 吗?
Amazon CloudFormation 支持规则和 EventBusPolicy 资源。事件总线和事件源资源尚不受支持,但是未来会支持。
问:我分别应在何时使用 Amazon EventBridge 和 Amazon SNS?
Amazon EventBridge 和 Amazon SNS 都可用来开发事件驱动型应用程序,您可以根据您的具体需求来选择。如果您想要构建一个会对来自 SaaS 应用程序和/或 亚马逊云科技 服务的事件做出反应的应用程序,建议使用 Amazon EventBridge。Amazon EventBridge 是唯一与第三方 SaaS 合作伙伴直接集成的基于事件的服务。Amazon EventBridge 还会自动从 90 多项 亚马逊云科技 服务提取事件,无需开发人员在他们的帐户中创建任何资源。此外,Amazon EventBridge 使用基于 JSON 的已定义事件结构,让您能够创建应用于整个事件主体的规则,以选择要转发到目标的事件。Amazon EventBridge 目前支持超过 15 项 亚马逊云科技 服务作为目标,包括 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 毫秒。广泛的 亚马逊云科技 服务通过配置服务来发送 SNS 消息(超过 30 项,包括 Amazon EC2、Amazon S3 和 Amazon RDS)。
合作伙伴
问:为何要将我的 SaaS 应用程序与 Amazon EventBridge 集成在一起?
Amazon EventBridge 让 SaaS 供应商能够轻松将他们的服务集成到客户在 亚马逊云科技 上构建的事件驱动型架构中。Amazon EventBridge 让数百万 亚马逊云科技 开发人员能够直接访问您的产品,由此解锁新的使用案例。它提供一个完全可审计、安全且可扩展的路径来发送事件,无需 SaaS 供应商来管理任何事件基础设施。
问:SaaS 合作伙伴需要花费多少努力,才能与 Amazon EventBridge 集成?
对于业已支持 webhook 或其他推送型集成模式的合作伙伴,预计只需执行不到 5 天的开发,即可与 Amazon EventBridge 集成。