Amazon Event Bridge の利用
Amazon EventBridge は AWS の提供する機能の一つです。 この機能を利用することで、GS2 内で発生したイベントをトリガーとしてAWS上のLambda/SQSといったコンポーネントに処理を接続し、追加の処理を行うことができます。
利用方法
GS2 上で Amazon EventBridge を有効化する
まずは AWS のマネージメントコンソールにアクセスし、Amazon EventBridge を開きます。この時、リージョンは us-east-1 (N.Verginia) を利用するようにしてください。
サイドメニューより Partner event sources を選択します。
検索ボックスにキーワードを入力して Game Server Services を探します。
Set up を選択すると簡単な設定の流れが表示されます。 Your AWS account ID の横にある「Copy」ボタンを押して、アカウントIDを保存します。
GS2 のマネージメントコンソールにアクセスし、サイドメニューから Project > 設定の更新 を選択します。
AWS EventBridge を 「有効」にし、通知に使用する AWSアカウントのID に先ほどコピーした情報を入力します。 通知に使用するAWSリージョンには us-east-1 を設定します。
これで、GS2 における EventBridge の設定は完了です。
AWS 上で GS2 から受け取ったイベントを処理するように設定する
Amazon EventBridge の Partner event sources のページの一覧に作成された GS2 に関するイベントソースが増えています。
イベントソースの詳細を開くと、Associate with event bus というボタンがありますので、ボタンをクリックします。
説明を読んだ上で Associate を実行してください。
ステータスが Active になったら利用できる状態になりました。
イベントルールを定義する
サイドメニューから Rules を選択します。ルールの一覧が表示されますので、Create rule を選択します。
Event bus に先ほど Associate したイベントソースを選択して Next を選択します。
次に GS2 から受け取ったイベントをフィルターする設定を記述します。 詳細は Amazon EventBridge のドキュメントを参照ください。
今回は All events を選択し、すべてのイベントを後続の処理で利用することにします。
次に 受け取ったイベントをどのように利用するかを設定します。 今回は AWS Lambda で受け取ることにしますので、Function に実行してほしい関数を設定します。
購読したいイベントを EventBridge に流すようにする
ネームスペースの設定で完了通知の送信先に EventBridge を指定して作成します。
動作確認
AWS Lambda で登録している関数は受け取ったイベントを print するだけの単純なものを設定します。
今回は、アカウント登録時に EventBridge に連携するよう設定したので、マネージメントコンソールからアカウントを登録します。
実行ログを確認すると、関数が呼び出されています。
ログの詳細を確認すると、登録されたアカウントの情報や作成に使用されたネームスペースの情報などが渡ってきているのが確認できます。
あとは AWS Lambda に登録する関数を書き換えて、自由に追加の処理を記述することが可能です。今回は Python を使ったコードを記述しましたが、AWS Lambda は他にもさまざまなプログラミング言語に対応しています。
GS2 も様々なプログラミング言語向けにSDKを提供していますので、AWS Lambda から GS2 の機能を呼び出すことも可能です。