亚马逊AWS官方博客

Amazon EventBridge — 适用于 SaaS 应用程序的事件驱动 AWS 集成

许多 AWS 客户也大量使用软件即服务 (SaaS) 应用程序。例如,他们使用 Zendesk 来管理客户服务和支持单,使用 PagerDuty 来处理事件响应,以及使用 SignalFX 来提供实时监控。虽然这些应用程序本身已经相当强大,但如果与客户自有的系统、数据库和工作流集成,甚至会变得更加强大。

新推出 Amazon EventBridge
为了支持这一越来越普遍的使用案例,今天我们推出了 Amazon EventBridge。构建 EventBridge 所采用的强大事件处理模型正是 CloudWatch Events 所基于的模型,让我们的客户可以方便地将自己的 AWS 应用程序与 SaaS 应用程序集成。SaaS 应用程序可以托管在任何地方,并且可以直接将事件发布到每个 AWS 客户特定的事件总线上。这种基于事件的异步模型运行迅速、干净,使用方便。发布者(SaaS 应用程序)和使用者(在 AWS 上运行的代码)完全解耦,不依赖任何共同的通信协议、运行时环境或编程语言。您可以使用简单的 Lambda 函数来处理来自 SaaS 应用程序的事件,并且还可以将事件路由至多种其他 AWS 目标。您可以将事件或支持单数据存储在 Amazon Redshift 中,针对客户支持查询训练机器学习模型,等等。

除一项重要的变化外,您已经了解(但愿您也喜欢)的有关 CloudWatch Events 的一切继续有效。除接受来自 AWS 服务、PutEvents 调用以及其他授权账户的事件的现有默认事件总线外,您订阅的每个合作伙伴应用程序也将创建一个事件源,然后您可以将该事件源关联到您 AWS 账户中的某个事件总线。您可以选择您的任何事件总线,创建“EventBridge 规则”并选择当传入的事件与规则匹配时要调用的“目标”。

在今天发布的同时,我们也启动了一个合作伙伴计划。集成过程十分简单直接,通常只需要不到一周的开发人员时间。

Amazon EventBridge 基本知识
为帮助您理解如何使用 Amazon EventBridge,您首先需要了解下面的一些术语:

合作伙伴 — 已经将其 SaaS 应用程序与 EventBridge 集成的组织。

客户 — 使用 AWS 并且已经订阅合作伙伴的 SaaS 应用程序的组织。

合作伙伴名称 — 识别 Amazon EventBridge 合作伙伴身份的唯一名称。

合作伙伴事件总线 — 用于将来自合作伙伴的事件发送到 AWS 的事件总线。

EventBridge 可以通过 AWS 管理控制台AWS 命令行界面 (CLI)AWS 软件开发工具包访问。有一些命令和 API 是区别合作伙伴和客户的。最重要的一些如下:

合作伙伴CreatePartnerEventSourceListPartnerEventSourceAccountsListPartnerEventSourcesPutPartnerEvents

客户ListEventSourcesActivateEventSourceCreateEventBusListEventBusesPutRulePutTargets

Amazon EventBridge 的合作伙伴和客户操作流程
正如我之前提到,集成过程十分简单直接。您需要允许您的客户输入一个 AWS 账号并选择一个 AWS 区域。取得该信息后,您将在需要的区域调用 CreatePartnerEventSource,将事件源的名称告知客户,然后告诉他们可以接受连接邀请,然后等待事件源的状态变为“活动”。然后,每次出现客户感兴趣的事件时,您将调用 PutPartnerEvents 并应用事件源。

客户一侧的流程也同样简单。您通过调用 CreateEventBus 以创建与该事件源关联的事件总线,从而接受连接邀请。您将规则和目标添加到该事件总线,并准备好处理事件的 Lambda 函数。将事件源与某个事件总线关联,也将激活该事件源并启动事件流。您可以使用 DeActivateEventSourceActivateEventSource 来控制事件流。

总体流程如下(流程图使用 SequenceDiagram 创建):

每个合作伙伴都可自由选择与其应用程序相关的事件,以及定义包含在每个事件中的数据元素。

EventBridge 的使用
我首先从 EventBridge 控制台开始,单击合作伙伴事件源,找到感兴趣的合作伙伴,然后单击它以了解更多信息:

每个合作伙伴页面都包含有关集成的额外信息。我阅读该信息,然后单击设置继续:

我可以借助此页面提供的简单三步流程来设置我的事件源:


在合作伙伴创建事件源后,我将返回合作伙伴事件源并且我可以看到 Zendesk 事件源的状态为待处理

我单击待处理的事件源,查看详细信息,然后单击关联到事件总线

我可以选择允许其他的 AWS 账户、我的组织或其他组织访问我将创建的事件总线上的事件。在我确认我信任该源并且添加任何额外的权限后,我单击关联

我的新事件总线现已可用,并列为自定义事件总线

我单击规则,选中该事件总线,然后查看与它关联的规则(目前为无)。然后我单击创建规则以创建我的第一条规则:

我输入第一条规则的名称和描述:

然后我定义一个模式,选择将 Zendesk 作为服务名称

然后我将一个 Lambda 函数选择为我的目标:

我还可以选择许多其他目标:

在创建规则后,它将根据我的 Zendesk 账户中出现的活动激活。最初的事件集包括 TicketCreatedCommentCreatedTagsChangedAgentAssignmentChangedGroupAssignmentChangedFollowersChangedEmailCCsChangedCustomFieldChangedStatusChanged。每个事件都包含一组丰富的属性,有关更多信息请参阅文档。

合作伙伴事件源
这次发布时有十个合作伙伴事件源,更多合作伙伴事件源将陆续推出:

  • Datadog
  • Zendesk
  • PagerDuty
  • Whispir
  • Saviynt
  • Segment
  • SignalFx
  • SugarCRM
  • OneLogin
  • Symantec

如果您拥有 SaaS 应用程序并且做好了集成准备,请参阅 EventBridge 合作伙伴集成

现已推出
Amazon EventBridge 现已推出,您可以在所有公有 AWS 区域的 aws 分区立即开始使用。有关中国 AWS 区域和亚太地区(大阪)本地区域的支持正在处理中。

定价基于发布到您账户中的事件总线的事件数量,按每百万个事件 1 USD 的价格收费。AWS 服务发布的事件不会产生额外的费用。

Jeff

后记 — 正如您可以在本博文中看出,我们越来越重视总体的 AWS 事件模型并且已经有很多奇妙的想法。在这次发布后,CloudWatch Events has 实际上已经晋升至顶级服务的水平,未来我会在此方面发表更多文章!

本篇作者

Jeff Barr

AWS 首席布道师; 2004年开始发布博客,此后便笔耕不辍。