Amazon GameLift
开发人员指南 (版本 )
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

设置 FlexMatch 事件通知

如果您在游戏中使用 FlexMatch 对战,您需要一种方法来跟踪单独对战请求的状态并相应采取操作。有时候,例如当玩家需要接受建议的对战游戏时,这些操作非常注重时间。跟踪各个请求状态的最简单方法是使用 DescribeMatchmaking 连续轮询。但是,要想更快地解决,我们建议您使用通知来跟踪对战事件。事件通知易于设置,可以大幅提升速度,更有效率。

有两个选项可用于设置事件通知。您可以使用 Amazon CloudWatch Events,其中包括一套工具,可用于管理事件和对其采取行动。此外,您可以设置自己的 SNS 主题并将其附加到您的对战构建器,以用于直接接收对战事件通知。

请参阅 FlexMatch 对战事件中由 Amazon GameLift 发出的 FlexMatch 事件的列表。

设置 CloudWatch Events

Amazon GameLift 自动将所有对战事件发送到 CloudWatch Events。使用 CloudWatch Events,您可以设置规则,让对战事件路由到一系列目标以进行处理,包括 SNS 主题和其他 AWS 服务。例如,您可以设置一个规则,将事件“PotentialMatchCreated”路由到处理玩家接受情况的 AWS Lambda 函数。在包含教程集合的入门指南中详细了解如何使用 CloudWatch Events。

如果您在配置您的对战构建器时计划使用 CloudWatch Events,可以将通知目标字段留空;如果您希望使用两个选项,则参考 SNS 主题。

要在 CloudWatch Events 中访问 Amazon GameLift 对战事件,请转到 Amazon CloudWatch 控制台并打开 Events。请确保您所在的区域是设置自己的对战配置的区域。有关获取账户凭证以访问 CloudWatch Events 的更多信息,请参阅登录 Amazon CloudWatch 控制台。每个对战事件由服务 (GameLift)、对战名称和对战票证标识。

设置 SNS 主题。

您可以要求 Amazon GameLift 将 FlexMatch 对战构建器生成的所有事件发布到 Amazon Simple Notification Service (SNS) 主题。配置对战构建器时,将通知目标字段设置为 SNS 主题 ARN。

为 Amazon GameLift 事件通知设置 SNS 主题

  1. 转到 Amazon Simple Notification Service 控制台

  2. 创建主题。 在 SNS 控制面板中,选择 Create topic (创建主题),然后按照说明创建主题。创建主题之后,控制台自动打开新主题的 Topic details 页面。

  3. 允许 Amazon GameLift 发布到主题。 如果您尚未打开主题的“Topic Details”页面,请在导航栏中选择“Topics”,然后单击主题 ARN 以打开它。选择主题操作 Edit topic policy,然后转到 Advanced view tab

    将以下加粗的语法添加到现有策略的结尾。(为清晰起见显示了整个策略。)

    { "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", "SNS:Receive" ], "Resource": "arn:aws-cn:sns:your_region:your_account:your_topic_name", "Condition": { "StringEquals": { "AWS:SourceOwner": "your_account" } } }, { "Sid": "__console_pub_0", "Effect": "Allow", "Principal": { "Service": "gamelift.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws-cn:sns:your_region:your_account:your_topic_name" } ] }