ゲームセッション配置のイベント通知を設定 - Amazon GameLift Servers

ゲームセッション配置のイベント通知を設定

イベント通知を使用して、個々のプレイスメントリクエストのステータスをモニタリングできます。プレイスメントアクティビティが多いすべてのゲームにイベント通知を設定することをおすすめします。

イベント通知を設定するためには二つのオプションがあります。

  • キューを使用して Amazon GameLift Servers から Amazon Simple Notification Service (Amazon SNS) トピックにイベント通知を発行します。

  • 自動的にパブリッシュされる Amazon EventBridge イベントとイベント管理ツール一式を使用します。

Amazon GameLift Servers から生成されるゲームセッションの配置イベントのリストについては、「ゲームセッション配置イベント」を参照してください。

重要

ハイボリュームプレイスメントシステムでは、FIFO トピックではなく、標準 (非FIFO) Amazon SNS トピックを使用することをお勧めします。FIFO トピックは標準トピックよりも発行制限が低く、高負荷時にスロットリング例外が発生する可能性があります。FIFO トピックでスロットリングが発生すると、キュー配置通知が失われる可能性があります。

SNS トピックの設定

Amazon GameLift Servers を使用して、ゲームセッションキューで生成されたすべてのイベントを 1 つのトピックにパブリッシュします。

Amazon GameLift Servers イベント通知用の SNS トピックをセットアップするには
  1. AWS マネジメントコンソール にサインインして Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home) を開きます。

  2. SNS [トピック] ページから [トピックを作成] を選択し、トピックを作成する手順に従います。

  3. [アクセスポリシー] で、以下の作業を行います。

    1. [詳細設定] 方法を選択します。

    2. JSON オブジェクトの次の太字のセクションを既存のポリシーに追加します。

      JSON
      { "Version":"2012-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "__default_statement_ID", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "SNS:GetTopicAttributes", "SNS:SetTopicAttributes", "SNS:AddPermission", "SNS:RemovePermission", "SNS:DeleteTopic", "SNS:Subscribe", "SNS:ListSubscriptionsByTopic", "SNS:Publish" ], "Resource": "arn:aws:sns:us-east-1:111122223333:your_topic_name", "Condition": { "StringEquals": { "AWS:SourceAccount": "your_account" } } }, { "Sid": "__console_pub_0", "Effect": "Allow", "Principal": { "Service": "gamelift.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:us-east-1:111122223333:your_topic_name", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:gamelift:us-east-1:111122223333:gamesessionqueue/your_queue_name" } } } ] }
    3. (オプション) リソースポリシーに条件を追加して、トピックにアクセス制御を追加します。

  4. [トピックを作成] を選択します。

  5. SNS トピックを作成したら、キューの作成時にそのトピックをキューに追加するか、既存のキューを編集して追加します。

サーバー側の暗号化を使用して SNS トピックをセットアップする

サーバー側の暗号化 (SSE) では、機密データを暗号化されたトピックに保存できます。SSE は、AWS Key Management Service (AWS KMS) のマネージドキーを使用して、Amazon SNS トピック内のメッセージの内容を保護します。Amazon SNS によるサーバー側の暗号化の詳細については、「Amazon Simple Notification Service デベロッパーガイド」の「保管時の暗号化」を参照してください。

サーバー側の暗号化を使用して SNS トピックを設定する方法については、以下のトピックを確認してください。

KMS キーを作成するときは、次の KMS キーポリシーを使用します。

{ "Effect": "Allow", "Principal": { "Service": "gamelift.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:gamelift:your_region:your_account:gamesessionqueue/your_queue_name" }, "StringEquals": { "kms:EncryptionContext:aws:sns:topicArn": "arn:aws:sns:your_region:your_account:your_sns_topic_name" } } }

EventBridge をセットアップする

Amazon GameLift Servers は、すべてのゲームセッションの配置イベントを EventBridge に自動的に投稿します。EventBridge を使用すると、処理するためにイベントをターゲットにルーティングするルールを設定できます。例えば、イベント PlacementFulfilled を、ゲームセッションに接続する前のタスクを処理する AWS Lambda 関数にルーティングするルールを設定できます。Eventbridge の詳細については、「Amazon EventBridge ユーザーガイド」の「Amazon EventBridge とは」を参照してください。

Amazon GameLift Servers キューで使用する EventBridge ルールの例を以下に示します。

すべての Amazon GameLift Servers キューのイベントに一致します

{ "source": [ "aws.gamelift" ], "detail-type": [ "GameLift Queue Placement Event" ] }

特定のキューからのイベントに一致します

{ "source": [ "aws.gamelift" ], "detail-type": [ "GameLift Queue Placement Event" ], "resources": [ "arn:aws:gamelift:your_region:your_account:gamesessionqueue/your_queue_name" ] }