Amazon Event Fork Pipelines 使用案例示例 - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon Event Fork Pipelines 使用案例示例

以下场景描述了一个事件驱动的、无服务器电子商务应用程序,该应用程序使用 Amazon Event Fork Pipelines。您可以在 Amazon Serverless Application Repository 中使用此示例电子商务应用程序,然后使用 Amazon Lambda 控制台将其部署到您的 Amazon Web Services 账户,您可以在其中测试它并在 GitHub 中检查其源代码。

集成 Amazon Web Services 服务的无服务器电子商务应用程序的架构。它描绘了从电子商务用户通过 API Gateway 下订单到包括订单存储、搜索分析和重播在内的不同处理管道的流程,展示了如何通过 Amazon SNS、Lambda、Amazon SQS、DynamoDB 和 Kibana 管理和分析事件。

此电子商务应用程序通过由 API Gateway 托管并由 Amazon Lambda 函数 CheckoutApiBackendFunction 支持的 RESTful API 来获取买方的订单。此函数将收到的所有订单发布到名为 CheckoutEventsTopic 的 Amazon SNS 主题,该主题转而将订单分散到四个不同的管道。

第一个管道是由电子商务应用程序的拥有者设计和实现的常规结算处理管道。此管道具有 Amazon SQS 队列 CheckoutQueue(此队列缓冲所有收到的订单)、一个名为 CheckoutFunction 的 Amazon Lambda 函数(此函数轮询队列以处理这些订单)和 DynamoDB 表 CheckoutTable(此表安全地保存所有已下订单)。

应用 Amazon Event Fork Pipelines

电子商务应用程序的组件处理核心业务逻辑。但是,电子商务应用程序拥有者还需满足:

  • 合规性 - 安全的、压缩的静态加密备份,清理敏感信息

  • 弹性 - 在执行过程中断的情况下重播最近的订单

  • 可搜索性 - 对已下订单运行分析并生成指标

应用程序拥有者可为 Amazon Event Fork Pipelines 订阅 CheckoutEventsTopic Amazon SNS 主题,而不是实施此事件处理逻辑

  • 事件存储与备份管线配置为转换数据以删除信用卡详细信息,缓冲数据 60 秒,使用 GZIP 压缩数据,并使用 Amazon S3 的原定设置客户自主管理型密钥来加密数据。此密钥由 Amazon 管理并由 Amazon Key Management Service(Amazon KMS)提供支持。

    有关更多信息,请参阅《Amazon Data Firehose 开发人员指南》中的为您的目的地选择 Amazon S3Amazon Data Firehose 数据转换配置设置

  • 事件搜索与分析管线为配置了一个 30 秒的索引重试持续时间、一个用于存储无法在搜索域中编制索引的订单的存储桶和一个用来限制已编制索引的订单集的筛选策略。

    有关更多信息,请参阅《Amazon Data Firehose 开发人员指南》中的选择 OpenSearch Service 作为您的目标

  • 事件重播管线 为配置了常规订单处理管道(由电子商务应用程序拥有者设计和实施)的 Amazon SQS 队列部分。

    有关更多信息,请参阅 Amazon Simple Queue Service 开发人员指南中的队列名称和 URL

在事件搜索与分析管道的配置中设置以下 JSON 筛选策略。它仅匹配总金额为 100 美元或更多的传入订单。有关更多信息,请参阅 Amazon SNS 消息筛选

{ "amount": [{ "numeric": [ ">=", 100 ] }] }

使用 Amazon Event Fork Pipelines 模式,电子商务应用程序拥有者可以避免在编写用于事件处理的一致逻辑后经常产生的开发开销。相反,她可以直接从 Amazon Serverless Application Repository 将Amazon Event Fork Pipelines 部署到其 Amazon Web Services 账户。