🚴🏻‍♀️

20221202-Amazon EventBridge Pipes

2022/12/02に公開

当記事について

re:inventで発表されたAmazon EventBridge Pipesを試してみようというモノです。

機能概要

Amazon EventBridgeの新機能です

■これまで

イベント駆動型で様々なサービスをビルディングブロックとして繋げることが最近の開発手法となっています。しかし連携元先(イベント・プロデューサー、コンシューマー)で利用している通信方法が異なる場合には、橋渡しのコード(グルー)を書く必要があります

■これから

Amazon EventBridge Pipesでイベント・プロデューサーとコンシューマー間のポイントツーポイント統合を、シンプルで一貫性があり、コスト効果の高い方法で実現することにより、未分化なグルーコードを書く必要をなくし、よりイベント駆動型アプリケーションを簡単に構築できるようになります

■仕組み

"2.イベントフィルタリング" と "3.強化"が新しく増えた箇所

1.イベントソース

Amazon DynamoDB、Amazon Kinesis Data Streams、Amazon SQS、Amazon Managed Streaming for Apache Kafka、Amazon MQがサポート対象。これらのサービスがイベントの出し手となる。

2.イベントフィルタリング (オプション)

イベントフィルターを指定し、フィルターに一致するイベントのみを処理します(フィルターで除外されたイベントには課金されません)。

3.強化 (オプション)

組み込みの無料の変換、またはAWS Lambda、AWS Step Functions、Amazon API Gateway、またはEventBridge API Destinationsを使用して、より高度な変換とリッチ化を実行し、イベントを変換する。

4.ターゲット

Amazon Step Functions、Kinesis Data Streams、AWS Lambda、EventBridge API destinationsを使用したサードパーティAPIなど、14以上のAWSサービスからターゲット先を選択する

試してみる

■最初の画面

■イベントソース準備

DaynamoDBを事前準備

ストリームを有効化

■イベントソース

事前準備をしたDaynamoDBを選択する

■イベントのフィルタリング - オプション

Messageに"Otameshi"というキーワードで始まる場合のフィルタリングを追加

■強化 - オプション

AWS Lambda、AWS Step Functions、Amazon API Gateway、またはEventBridge API Destinationsを選択できますが、ここは利用せず削除します。

■ターゲット

CloudWatch Logsに出力を行います。

またその際にメッセージを抽出・加工する処理を追加します
Messageの内容に"Otameshi"を追加し出力するモノです

■作成完了とRole

作成が完了しました、Roleがこの時点で自動的に出来上がります(事前に選択も可能)

ポリシーを確認するといい感じに絞られた権限が付与されています

■イベントソースであるDynamoDBにデータ投入

No Message 備考
1 Otameshi-1 抽出対象
2 otamesh-2 抽出対象外、小文字であるため
3 3-Otameshi 抽出対象外、先頭が"Otameshi"でないため

■ターゲットであるCloudWatch確認

想定通りに抽出・加工されていることを確認

{
    "S": "Otameshi-1 Otameshi"
}

感想

これまでフィルター処理をLambdaなどで処理する必要があったのですが、それを対応しなくて済むのは楽ですね。

Discussion