設定遊戲工作階段位置的事件通知 - Amazon GameLift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定遊戲工作階段位置的事件通知

您可以使用事件通知來監視個別放置請求的狀態。我們建議您為所有具有大量位置活動的遊戲設定事件通知。

設定事件通知有兩種選項。

  • 讓亞馬遜使用隊列將事件通知GameLift發佈到亞馬遜簡單通知服務(亞馬遜 SNS)主題。

  • 使用自動發佈的 Amazon EventBridge 事件及其工具套件來管理事件。

如需 Amazon 發出的遊戲工作階段放置事件清單GameLift,請參閱遊戲工作階段安置事

設定 SNS 主題

GameLift若要讓 Amazon 將遊戲工作階段佇列產生的所有事件發佈到主題,請將通知目標欄位設定為主題。

設定亞馬遜GameLift事件通知的 SNS 主題
  1. 登入 AWS Management Console,並在 https://console.aws.amazon.com/sns/v3/home 開啟 Amazon SNS 主控台。

  2. 在「SNS 主題」頁面中,選擇「建立主題」,然後依照指示建立主題。

  3. 在 [存取原則] 底下,執行下列動作:

    1. 選擇高級方法。

    2. 將 JSON 物件的下列粗體區段新增至現有政策。

      { "Version": "2008-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:your_region:your_account: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:your_region:your_account:your_topic_name", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:gamelift:your_region:your_account:gamesessionqueue/your_queue_name" } } } ] }
    3. (選擇性) 將條件新增至資源策略,將其他存取控制新增至主題。

  4. 請選擇 建立主題

  5. 建立 SNS 主題後,請在佇列建立期間將其新增至佇列,或編輯現有佇列以新增它。

設定具有伺服器端加密的 SNS 主題

使用伺服器端加密 (SSE),您可以將機密資料儲存在加密主題中。SSE 會使用 AWS Key Management Service (AWS KMS) 中管理的金鑰來保護 Amazon SNS 主題中訊息的內容。如需使用 Amazon SNS 進行伺服器端加密的詳細資訊,請參閱 Amazon 簡單通知服務開發人員指南中的靜態加密。

若要設定具有伺服器端加密的 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自動將所有遊戲工作階段放置事件發佈到EventBridge。EventBridge您可以使用設定規則,將事件路由至目標進行處理。例如,您可以設定規則,將事件路由PlacementFulfilled至處理連線至遊戲工作階段之前的工作的AWS Lambda函數。如需詳細資訊EventBridge,請參閱什麼是 AmazonEventBridge?亞馬遜EventBridge用戶指南

以下是與 Amazon GameLift 佇列搭配使用的一些EventBridge規則範例:

匹配所有亞馬遜GameLift隊列中的事件

{ "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" ] }