Amazon Event Bridge の利用
Amazon Event Bridge の利用 を利用した GS2 の機能拡張について
GS2 は様々な機能をマイクロサービスとして提供しています。 しかし、場合によっては機能を拡張したいと感じる場面があるかもしれません。
GS2-Script は Lua 言語を利用したスクリプティング機能を提供し、GS2 のマイクロサービスの機能を拡張できます。 GS2-Script に記述したスクリプトは任意のタイミングで呼び出せるようなものではなく、GS2 の各マイクロサービスが定義するトリガーに応じて実行されます。
たとえば、GS2-Account には以下のトリガーが存在します。
それぞれ、スクリプトの実行タイミングとして「同期処理」「非同期処理」が利用できます。
型 | 説明 | |
---|---|---|
namespace | Namespace | ネームスペース |
account | Account | ゲームプレイヤーアカウント |
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
permit | bool | ✓ | アカウントの作成を許可するか |
namespace = args.namespace
account = args.account
result = {
permit=permit
}
トリガーに対して同期処理を設定すると、スクリプトの実行が完了するまでAPIの処理はブロックされます。 スクリプトの実行時間分、APIの応答速度が落ちる代わりに 「スクリプトから結果を改竄」したり「処理を止める」することができます。
もう少し具体的な例を示すと、スクリプトからクエストの入手経験値量を 2倍 に書き換えたり、クエストの開始処理で編成されたパーティに特定のキャラクターが含まれていない場合はエラー応答させることができます。
トリガーに対して非同期処理を設定すると、APIが応答した後に非同期処理でスクリプトが実行されます。
アイテムの所持数量でランキングを実現したい場合、アイテムを入手・消費した際のトリガーに非同期スクリプトを割り当てることで、 APIの応答速度を損なうことなく、スクリプト内からアイテムの所持数量をスコアとしてランキングに登録するような処理ができます。
GS2 は非同期処理の実装方法として、AWS が提供する 「Amazon Event Bridge」 が利用できます。 「Amazon Event Bridge」 の利用方法については別途資料を参考にしてください。
Amazon Event Bridge の利用 を利用した GS2 の機能拡張について