Amazon Event Bridge の利用

Amazon Event Bridge の利用 を利用した GS2 の機能拡張について

Amazon EventBridge は AWS の提供する機能の一つです。 この機能を利用することで、GS2 内で発生したイベントをトリガーとしてAWS上のLambda/SQSといったコンポーネントに処理を接続し、追加の処理を行うことができます。

利用方法

GS2 上で Amazon EventBridge を有効化する

img.png

まずは AWS のマネージメントコンソールにアクセスし、Amazon EventBridge を開きます。この時、リージョンは us-east-1 (N.Verginia) を利用するようにしてください。

img_1.png

サイドメニューより Partner event sources を選択します。

img_2.png

検索ボックスにキーワードを入力して Game Server Services を探します。

img_3.png

Set up を選択すると簡単な設定の流れが表示されます。 Your AWS account ID の横にある「Copy」ボタンを押して、アカウントIDを保存します。

img_4.png

GS2 のマネージメントコンソールにアクセスし、サイドメニューから Project > 設定の更新 を選択します。

img_5.png

AWS EventBridge を 「有効」にし、通知に使用する AWSアカウントのID に先ほどコピーした情報を入力します。 通知に使用するAWSリージョンには us-east-1 を設定します。

これで、GS2 における EventBridge の設定は完了です。

AWS 上で GS2 から受け取ったイベントを処理するように設定する

img_6.png

Amazon EventBridge の Partner event sources のページの一覧に作成された GS2 に関するイベントソースが増えています。

img_7.png

イベントソースの詳細を開くと、Associate with event bus というボタンがありますので、ボタンをクリックします。

img_8.png

説明を読んだ上で Associate を実行してください。

img_9.png

ステータスが Active になったら利用できる状態になりました。

イベントルールを定義する

img_10.png

サイドメニューから Rules を選択します。ルールの一覧が表示されますので、Create rule を選択します。

img_11.png

Event bus に先ほど Associate したイベントソースを選択して Next を選択します。

img_12.png

次に GS2 から受け取ったイベントをフィルターする設定を記述します。 詳細は Amazon EventBridge のドキュメントを参照ください。

今回は All events を選択し、すべてのイベントを後続の処理で利用することにします。

img_13.png

次に 受け取ったイベントをどのように利用するかを設定します。 今回は AWS Lambda で受け取ることにしますので、Function に実行してほしい関数を設定します。

購読したいイベントを EventBridge に流すようにする

img_14.png

ネームスペースの設定で完了通知の送信先に EventBridge を指定して作成します。

動作確認

img_15.png

AWS Lambda で登録している関数は受け取ったイベントを print するだけの単純なものを設定します。

img_16.png

今回は、アカウント登録時に EventBridge に連携するよう設定したので、マネージメントコンソールからアカウントを登録します。

img_17.png

実行ログを確認すると、関数が呼び出されています。

img_18.png

ログの詳細を確認すると、登録されたアカウントの情報や作成に使用されたネームスペースの情報などが渡ってきているのが確認できます。

あとは AWS Lambda に登録する関数を書き換えて、自由に追加の処理を記述することが可能です。今回は Python を使ったコードを記述しましたが、AWS Lambda は他にもさまざまなプログラミング言語に対応しています。

GS2 も様々なプログラミング言語向けにSDKを提供していますので、AWS Lambda から GS2 の機能を呼び出すことも可能です。