本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定遊戲工作階段位置的事件通知
您可以使用事件通知來監視個別放置請求的狀態。我們建議您為所有具有大量位置活動的遊戲設定事件通知。
設定事件通知有兩種選項。
-
讓亞馬遜使用隊列將事件通知GameLift發佈到亞馬遜簡單通知服務(亞馬遜 SNS)主題。
-
使用自動發佈的 Amazon EventBridge 事件及其工具套件來管理事件。
如需 Amazon 發出的遊戲工作階段放置事件清單GameLift,請參閱遊戲工作階段安置事。
設定 SNS 主題
GameLift若要讓 Amazon 將遊戲工作階段佇列產生的所有事件發佈到主題,請將通知目標欄位設定為主題。
設定亞馬遜GameLift事件通知的 SNS 主題
登入 AWS Management Console,並在 https://console.aws.amazon.com/sns/v3/home
開啟 Amazon SNS 主控台。 -
在「SNS 主題」頁面中,選擇「建立主題」,然後依照指示建立主題。
-
在 [存取原則] 底下,執行下列動作:
-
選擇高級方法。
-
將 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
" } } } ] } -
(選擇性) 將條件新增至資源策略,將其他存取控制新增至主題。
-
-
請選擇 建立主題 。
-
建立 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
" ] }