Amazon EventBridge Pipes がリリースしたので検証してみた。

# 概要

* re:Invent 2022 で Amazon EventBridge Pipes がリリースされました。
* 今回は、その Amazon EventBridge Pipes とは何かについてまとめていこうと思います。

# Amazon EventBridge Pipes とは

* Amazon EventBridge Pipes とは、Amazon EventBridge の新機能として追加されたものになります。
* イベントプロデューサーとコンシューマーの中間者となり、シームレスにターゲットとなるサービスに流すことができます。
* これにより、イベント駆動型アプリケーションの構築がよりやりやすくなります。

## Amazon EventBridge Pipes の設定方法

* 1. イベントを生成しているソースを選択します。
  * サポートされているソース
    * Amazon DynamoDB
    * Amazon Kinesis Data Streams
    * Amazon SQS
    * Amazon Managed Streaming for Apache Kafka
    * Amazon MQ
  * (オプション) イベントフィルターを指定して、フィルターに一致するイベントのみを処理させる
  * (オプション) AWS Lambda、AWS Step Functions、Amazon API Gateway、EventBridge API Destinations を使用して流入するイベントをガチャガチャすることもできます。
* ターゲットの宛先として、14の AWS サービス、例えば、Amazon Step Functions、Kinesis Data Streams、AWS Lambda、EventBridge API、サードパーティ APIから選択することができます。

## 使用できるリージョン

* アジアパシフィック (ハイデラバード) とヨーロッパ (チューリッヒ) を除くすべての AWS リージョンで利用できます。

# 試してみた

* サービス発表当初、東京リージョンのマネコンからは見えなかったので、バージニアリージョンで試していきます。
* EventBridge にいくと Pipes なるものが生えてますね。

![スクリーンショット 2022-12-02 2.42.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/eb726f45-879c-0f0b-1da2-8ad8aa01b6ec.png)

* パイプを早速作っていきましょう。
![スクリーンショット 2022-12-02 2.43.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/5c9f0a78-628a-cde7-efeb-b7de107c5928.png)

* GUI 上でポチポチやっていく系ですね。

![スクリーンショット 2022-12-02 2.43.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/4e6b6cf3-89c7-0b68-e255-4731367b9176.png)

* 「pipe setting」に移動し、IAM のアクセス許可を設定していきます。
* 「Permission」セクションで、新しく作成するパイプの新しい IAM ロールを定義するか、既存のロールを選択します。

![スクリーンショット 2022-12-02 2.46.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/e53fbb11-a10d-9d45-2117-df2440a5a682.png)

* 次に、「Build pipe」に移動し、イベントソースを選択します。
 
![スクリーンショット 2022-12-02 2.47.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/b55d83ba-a17a-b454-767f-81941199658f.png)


![スクリーンショット 2022-12-02 2.49.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/1f29c071-3750-505f-5b0c-fb6b185c07c3.png)


* 次に選択したイベントソースから流入するイベントに対するフィルタリングを定義できます。
* ちなみに、フィルタリングはオプションの機能です。

![スクリーンショット 2022-12-02 2.54.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/6359e216-5353-a0c9-9aa1-97a0efccc9ac.png)

* 次に、Enrichment なのですが、ここでは、イベントをターゲット宛先に送信する前に、イベントを拡張、変換、または拡張させることができます。

![スクリーンショット 2022-12-02 2.55.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/d2e502d0-2f60-9f9e-714a-b8e9e363ddaa.png)

* 最後に、このパイプによって配信されるイベントを処理するためのターゲットを定義します。

![スクリーンショット 2022-12-02 2.57.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/69f3513e-d2bf-8a88-36d2-3a4bff36946a.png)


![スクリーンショット 2022-12-02 2.57.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/e2eaef19-605a-a995-d33a-4d19286ac5c1.png)

* Pipeを作成すると数分で作ることができました。
![スクリーンショット 2022-12-02 2.59.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/c9c216de-acab-1170-d5c5-c0a2f1c01bf8.png)

## さいごに

* ざっと検証してみましたが、ここまで簡単に作成できるとは。。
* これでイベント駆動のアーキテクチャの幅がめっちゃ広がりますね！！！


# 参考文献

https://aws.amazon.com/jp/blogs/aws/new-create-point-to-point-integrations-between-event-producers-and-consumers-with-amazon-eventbridge-pipes/