

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS 事件分叉管道使用案例範例
<a name="example-sns-fork-use-case"></a>

下列案例說明使用 AWS Event Fork Pipelines 的事件驅動型無伺服器電子商務應用程式。您可以在 中使用此[範例電子商務應用程式](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-example-ecommerce-checkout-api)， AWS Serverless Application Repository 然後使用 AWS Lambda 主控台將其部署在 AWS 帳戶 中，您可以在其中進行測試，並在 GitHub 中檢查其原始碼。

![整合 的無伺服器電子商務應用程式的架構 AWS 服務。它描述了從透過 API Gateway 下訂單的電子商務使用者到不同處理管道的流程，包括訂單儲存、搜尋分析和重播，展示如何透過 Amazon SNS、Lambda、Amazon SQS、DynamoDB 和 Kibana 管理和分析事件。](http://docs.aws.amazon.com/zh_tw/sns/latest/dg/images/sns-fork-example-use-case.png)


此電子商務應用程式會透過 API Gateway 託管並由 AWS Lambda 函數 支援的 RESTful API 接收買方的訂單`CheckoutApiBackendFunction`。此函數將所有收到的訂單發佈到名為 `CheckoutEventsTopic` 的 Amazon SNS 主題，此主題又進而將訂單散發到四個不同的管道。

第一個管道是一般結帳處理管道，由電子商務應用程式的擁有者所設計和實作。此管道具有`CheckoutQueue`緩衝所有已接收訂單的 Amazon SQS 佇列、名為 的 AWS Lambda 函數`CheckoutFunction`，以輪詢佇列來處理這些訂單，以及`CheckoutTable`安全儲存所有已下訂訂單的 DynamoDB 資料表。

## 套用 AWS 事件分叉管道
<a name="applying-sns-fork-pipelines"></a>

電子商務應用程式的元件處理核心商業邏輯。不過，電子商務應用程式擁有者還需要解決下列問題：
+ **合規** 靜態加密安全、壓縮的備份，並淨化敏感資訊
+ **彈性** 在履行程序中斷時重播最近的訂單
+ **可搜尋性** 對已提交的訂單進行分析並產生指標

應用程式擁有者可以訂閱 `CheckoutEventsTopic`Amazon SNS 主題 AWS 的事件分叉管道，而不是實作此事件處理邏輯
+ [事件儲存和備份管道](sns-fork-pipeline-as-subscriber.md#sns-fork-event-storage-and-backup-pipeline) 設定為轉換資料以移除信用卡詳細資訊、緩衝資料 60 秒、使用 GZIP 來壓縮資料，以及使用 Amazon S3 的預設客戶受管金鑰來加密資料。此金鑰由 管理 AWS ，並由 AWS Key Management Service () 提供支援AWS KMS。

  如需詳細資訊，請參閱[《Amazon Data Firehose 開發人員指南》中的為您的目的地選擇 Amazon S3](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-s3)**[、Amazon Data Firehose 資料轉換](https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html)和[設定設定](https://docs.aws.amazon.com/firehose/latest/dev/create-configure.html)。
+ [事件搜尋和分析管道](sns-fork-pipeline-as-subscriber.md#sns-fork-event-search-and-analytics-pipeline)設定為索引重試持續時間 30 秒、使用儲存貯體來存放無法在搜尋網域中編製索引的訂單，以及使用篩選政策來限制可編製索引的訂單集。

  如需詳細資訊，請參閱《*Amazon Data Firehose 開發人員指南*》中的[為您的目的地選擇 OpenSearch Service](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-elasticsearch)。
+ 設定 [事件重播管道](sns-fork-pipeline-as-subscriber.md#sns-fork-event-replay-pipeline) 為使用電子商務應用程式擁有者所設計和實作的一般訂單處理管道的 Amazon SQS 佇列部分。

  如需詳細資訊，請參閱 *Amazon Simple Queue Service 開發人員指南*中的[佇列名稱與 URL](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-general-identifiers.html#queue-name-url)。

事件搜尋和分析管道的組態中設定下列 JSON 篩選政策。它只符合總金額為 100 USD 或更多金額的傳入訂單。如需詳細資訊，請參閱[Amazon SNS 訊息篩選](sns-message-filtering.md)。

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

使用 AWS 事件分叉管道模式，電子商務應用程式擁有者可以避免通常在為事件處理編碼不區分邏輯之後產生的開發開銷。相反地，她可以直接從 將 AWS 事件分叉管道部署 AWS Serverless Application Repository 到她的 AWS 帳戶。