请参阅设置游戏会话置放通知。 - Amazon GameLift

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

请参阅设置游戏会话置放通知。

您可以使用Events 来监控各个放置请求的状态。我们建议为所有有大量投放活动的游戏设置事件通知。

有两个选项可用于设置事件通知。

  • 使用队列将事件通知发布到 Amazon Simple Notification Service (Amazon SNS) 主题。

  • 使用自动发布的 Amazon EventBridge 赛事及其工具套件来管理事件。

有关 Amazon GameLift 发出的游戏会话放置事件的列表,请参阅游戏会话放置事件

设置 SNS 主题。

要让 Amazon GameLift 将游戏会话队列生成的所有事件发布到某个主题,请将通知目标字段设置为主题。

为 事件通知设置 SNS 主题
  1. 访问 https://console.aws.amazon.com/sns/v3/home,登录 AWS Management Console 并打开 Amazon SNS 控制台。

  2. 在 SNS 控制面板中,选择 Create topic (创建主题),然后按照说明创建主题。

  3. Create Policy(创建策略)下,执行以下操作。

    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. 选择 Create topic(创建主题)

  5. 创建 SNS 主题后,在创建队列时将其添加到队列中,或者编辑现有队列以将其添加。

使用服务器端加密设置 Amazon SNS 主题

借助服务器端加密(SSE),您可以采用加密主题的方式存储敏感数据。SSE 使用 AWS Key Management Service(AWS KMS)中托管的密钥保护 Amazon SNS 主题中消息的内容。有关 Amazon S3 如何执行加密的更多信息,请参阅 Amazon Simple Storage 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 会自动将所有游戏会话放置事件发布到 EventBridge。使用 EventBridge,您可以设置规则将事件路由到目标进行处理。例如,您可以设置一条规则,将事件路由PlacementFulfilled到一个处理连接到游戏会话之前的任务的AWS Lambda函数。有关 EventBridge 的更多信息,请参阅 Amazon EventBridge 用户指南中的 Amazon EventBridge 入门

以下是用于 Amazon GameLift 队列的赛事桥规则的一些示例:

匹配来自所有 Amazon 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" ] }