

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Event Fork Pipelines ユースケースの例
<a name="example-sns-fork-use-case"></a>

次のシナリオでは、Event Fork Pipelines を使用する AWS イベント駆動型のサーバーレス e コマースアプリケーションについて説明します。この[例の e コマースアプリケーションを](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 のサービスを統合するサーバーレス e コマースアプリケーションのアーキテクチャ。e コマースのユーザーによる API Gateway 経由での注文の実行から、注文の保存、検索分析、再生などのさまざまな処理パイプラインまでのフローを示しています。Amazon SNS、Lambda、Amazon SQS、DynamoDB、Kibana を介してイベントが管理され、分析されることを示しています。](http://docs.aws.amazon.com/ja_jp/sns/latest/dg/images/sns-fork-example-use-case.png)


この e コマースアプリケーションは、API Gateway によってホストされ、 AWS Lambda 関数 によってバックアップされた RESTful API を通じて購入者からの注文を受け取ります`CheckoutApiBackendFunction`。この関数は、すべての受注を `CheckoutEventsTopic` という名前の Amazon SNS トピックに発行します。このトピックでは、これらの受注を 4 つの異なるパイプラインにファンアウトします。

最初のパイプラインは、e コマースアプリケーションの所有者によって設計および実装された通常のチェックアウト処理パイプラインです。このパイプラインには、受信したすべての注文をバッファ`CheckoutQueue`する Amazon SQS キュー、これらの注文を処理するためにキューをポーリング`CheckoutFunction`する という名前の AWS Lambda 関数、およびすべての注文を安全に保存する DynamoDB テーブル`CheckoutTable`があります。

## AWS Event Fork Pipelines の適用
<a name="applying-sns-fork-pipelines"></a>

e コマースアプリケーションのコンポーネントは、主要ビジネスロジックを処理します。ただし、e コマースアプリケーションの所有者は以下にも対処する必要があります。
+ **コンプライアンス** - 安全な、圧縮されたバックアップの保管時の暗号化と機密情報のサニタイズ
+ **レジリエンス** - フルフィルメントプロセスの中断が発生した場合の最新の注文の再生
+ **検索可能性** - 受注に対する分析の実行とメトリクスの生成

このイベント処理ロジックを実装する代わりに、アプリケーション所有者は AWS Event Fork Pipelines を `CheckoutEventsTopic` Amazon SNS トピックにサブスクライブできます。
+ [イベントのストレージおよびバックアップパイプライン](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) には、e コマースアプリケーションの所有者によって設計および実装された通常の注文処理パイプラインの 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 Event Fork Pipelines パターンを使用すると、e コマースアプリケーションの所有者は、イベント処理の差別化ロジックのコーディングに従うことが多い開発オーバーヘッドを回避できます。代わりに、 AWS Event Fork Pipelines を から直接 AWS Serverless Application Repository にデプロイできます AWS アカウント。