创建 Amazon EventBridge 示例应用程序 - Amazon EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

创建 Amazon EventBridge 示例应用程序

您可以使用 EventBridge 路由事件到特定的 Lambda 函数中使用规则.

在本教程中,您将使用Amazon CLI、Node.js 和GitHub 回购创建以下内容:

  • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon Lambda函数为银行 ATM 交易生成事件。

  • 三个 Lambda 函数用作targets的 EventBridge 规则。

  • 和将创建的事件路由到正确的下游函数的规则,基于事件模式.

此示例使用Amazon SAM模板来定义 EventBridge 梁规则。要了解有关使用Amazon SAM使用 EventBridge 的模板请参阅使用 Amazon EventBridge 和Amazon Serverless Application Model模板.

在回购中,自动取款机子目录包含handler.js,表示产生事件的 ATM 服务。此代码是用 Node.js 编写的 Lambda 处理程序,并 EventBridge 过Amazon开发工具包使用此代码行的 JavaScript 代码。

const result = await eventbridge.putEvents(params).promise()

此目录还包含events.js,列出了一个 Enter 数组中的几个测试事务。在 JavaScript 中定义了单个事件,如下所示:

exports.case1Handler = async (event) => { console.log('--- Approved transactions ---') console.log(JSON.stringify(event, null, 2)) } exports.case2Handler = async (event) => { console.log('--- NY location transactions ---') console.log(JSON.stringify(event, null, 2)) } exports.case3Handler = async (event) => { console.log('--- Unapproved transactions ---') console.log(JSON.stringify(event, null, 2)) }

这些区域有:Detail部分指定事务属性。其中包括 ATM 的位置、金额、合作伙伴银行和交易结果。

这些区域有:handler.js文件自动提款机子目录包含三个函数:

exports.case1Handler = async (event) => { console.log('--- Approved transactions ---') console.log(JSON.stringify(event, null, 2)) } exports.case2Handler = async (event) => { console.log('--- NY location transactions ---') console.log(JSON.stringify(event, null, 2)) } exports.case3Handler = async (event) => { console.log('--- Unapproved transactions ---') console.log(JSON.stringify(event, null, 2)) }

每个函数都接收事务事件,这些事务通过console.log语句到Amazon CloudWatch Logs. 消费者功能独立于生成者,并且不知道事件的来源。

路由逻辑包含在 EventBridge 规则中,这些规则由应用程序的Amazon SAM模板。这些规则评估事件的传入流,并将匹配事件路由到目标 Lambda 函数。

此规则使用事件模式,这些事件模式是 JSON 对象,具有与它们匹配的事件结构相同的结构。以下是其中一个规则的事件模式。

{ "detail-type": ["transaction"], "source": ["custom.myATMapp"], "detail": { "location": [{ "prefix": "NY-" }] } }

Prerequisites

要完成本教程,您需要具备以下资源:

第 1 步:创建应用程序

要设置示例应用程序,您将使用Amazon CLI和 Git 来创建Amazon您将需要的资源。

创建应用程序

  1. 登录到Amazon.

  2. 安装 Git安装Amazon Serverless Application ModelCLI在本地计算机上。

  3. 创建一个新目录,然后导航到终端中的该目录。

  4. 在命令行中,输入git clone https://github.com/aws-samples/amazon-eventbridge-producer-consumer-example.

  5. 在命令行中,运行以下命令:

    cd ./amazon-eventbridge-producer-consumer-example sam deploy --guided
  6. 在终端中,执行以下操作:

    1. 适用于Stack Name中,为堆栈输入名称。例如,将堆栈命名为Test.

    2. 适用于AWS Region中,输入区域。例如:us-west-2

    3. 对于 Confirm changes before delpoy,输入 Y

    4. 适用于Allow SAM CLI IAM role creation,输入Y

    5. 适用于Save arguments to configuration file,输入Y

    6. 对于 SAM configuration file,输入 samconfig.toml

    7. 对于 SAM configuration environment,输入 default

第 2 步:运行应用程序

现在您已设置资源,您将使用控制台测试函数。

运行应用程序

  1. 打开Lambda 控制台在其中部署了Amazon SAM应用程序.

  2. 有四个带有前缀的 Lambda 函数ATM 演示. 选择自动取款机 FN函数,然后选择操作测试.

  3. EnterTest(对于 )名称.

  4. 选择 Test(测试)。

第 3 步:检查日志并验证应用程序是否工作

现在您已运行应用程序,您将使用控制台检查 CloudWatch Logs。

检查日志

  1. 打开CloudWatch 控制台在同一区域运行Amazon SAM应用程序.

  2. 选择日志,然后选择日志组.

  3. 选择包含的日志组自动提款机案例 1. 您将看到两个流,代表 ATM 批准的两个交易。选择日志流以查看输出。

  4. 导航回日志组列表,然后选择包含自动提款机案例 2. 您将看到两个代表两个事务的流匹配纽约位置过滤器。

  5. 导航回日志组列表,然后选择包含自动提款机案例 3. 打开流以查看被拒绝的事务处理。

第 4 步:清除 资源

除非您想要保留为本教程创建的资源,否则可立即将其删除。通过删除Amazon您不再使用的资源,可防止您的Amazonaccount.

删除 EventBridge 梁规则

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

  2. 选择您创建的规则。

  3. 选择 Delete

  4. 选择 Delete

删除 Lambda 函数的步骤

  1. 打开 Lamba 控制台的 Functions(函数)页面

  2. 选择您创建的函数。

  3. 依次选择 ActionsDelete

  4. 选择 Delete(删除)。

删除 CloudWatch Logs 日志组的步骤

  1. 打开云观察控制台.

  2. 选择日志日志组.

  3. 选择在本教程中创建的日志组。

  4. 依次选择 Actions(操作)Delete log group(s)(删除日志组)

  5. 选择 Delete