Amazon EventBridge 連携機能
SaaSus Platform は、 Amazon EventBridge と統合されています。 SaaSus Platform で起こった各種イベントをパートナーイベントソースとして、 SaaS 側 AWS アカウントの Amazon EventBridge に送信することができます。これを活用することにより、 SaaSus Platform と連携したイベント駆動のアーキテクチャを採用し SaaS を構築することができます。
例えば、SaaSのテナントが作成されたときにテナントオンボーディング処理をトリガーする、ユーザが削除されたときに付随するデータを削除する処理をトリガーするなどに活用できます。現在は、全ての SaaSus API のイベントを取得することができます。各APIの内容は、APIリファレンスを確認してください。
また、イベントメッセージの内容はイベントサンプルでご確認ください。
設定と動作の確認
SaaS 開発コンソールのイベント連携画面を開きます。
AWSアカウントID の部分には、イベント送信先のAWSアカウントID(SaaSを構築しているAWSアカウントの12桁のID)を入力します。また、通知を受け取るAWSリージョンも選択します。そして保存ボタンを押します。
上記で設定したAWSアカウント上に、パートナーイベントパスが作成されます。該当AWSアカウントにログインした後に、Amazon EventBridgeのパートナーイベントソースのコンソールを開 き、パートナーイベントソースが作成されていることを確認してください。
作成されたパートナーイベントソースを選択し、「イベントバスと関連付ける」を行ってください。すると、他のイベントソースと同様にイベントバスで利用することができるようになります。
次に、イベントの送信を試してみましょう。Amazon EventBridgeのバスのルールのページを開きます。ここ画面で、先ほどのパートナーイベントソースがイベントバスとして選択できる状態になっているはずです。
このイベントバスをベースにルールを作成します。以下の画面のように設定していきましょう。
まずは、SaaSus Platformのイベントバスを選択し、ルールを作成をクリックします。各画面では、以下の画面を参考に入力してみてください。
イベントパターンの部分には、まずは全てのSaaSus Platformのイベントを取得するために、以下のパターンを記載します。「パターンを編集」ボタンをクリックし、以下のJSONを直接記載します。
{
"source": [{
"prefix": "aws.partner/saasus.io"
}]
}
今回は全てのイベントを取得していますが、もちろん特定のAPIコールに対するイベントのみの取得するようなフィルターをかけることも出来ます。
今回はどのようなイベントが届くのかを確認するために、全てのイベントを CloudWatch Logs に出力してみましょう。
全ての設定が終わったら、ルールの作成をクリックし、ルールが作成されたことを確認してください。
これでイベントを連携する準備ができましたので、テストイベントを送信してみましょう。SaaSus 開発コンソールに戻り、テスト送信ボタンをクリックします。
イベントが正常に届くと、CloudWatch Logsにイベントの内容が記録されているはずです。確認してみましょう。
このような形でイベントが取得できることができました。
今回はCloudWatch Logsに連携していますが、Lambdaや他のAPIなどいろいろなターゲットにイベント連携することができます。これを活用することにより、イベント駆動のアーキテクチャを適用することができるようになり、どこからSaaSus APIが呼ばれたか・いつ呼ばれたかということと、その結果何をいつすべきか、ということを分離することができます。
"detail" 項目には "trace_id" が含まれています。 これは、 SaaSus API のリクエスト時に指定したもの、もしくは自動的に生成されたものと同一なので、どのAPIコールによるイベントなのか?をトレースすることができます。