AWS::GameLift::MatchmakingConfiguration - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::GameLift::MatchmakingConfiguration

AWS::GameLift::MatchmakingConfiguration 资源定义与 FlexMatch 一起使用的新对战配置。对战配置为匹配玩家和启动对战游戏会话制订指导原则。您可以设置多个对战配置以处理游戏所需的场景。对战请求指定要使用的配置,并提供配置所需的玩家属性值。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::GameLift::MatchmakingConfiguration", "Properties" : { "AcceptanceRequired" : Boolean, "AcceptanceTimeoutSeconds" : Integer, "AdditionalPlayerCount" : Integer, "BackfillMode" : String, "CustomEventData" : String, "Description" : String, "GameProperties" : [ GameProperty, ... ], "GameSessionData" : String, "GameSessionQueueArns" : [ String, ... ], "Name" : String, "NotificationTarget" : String, "RequestTimeoutSeconds" : Integer, "RuleSetName" : String } }

YAML

Type: AWS::GameLift::MatchmakingConfiguration Properties: AcceptanceRequired: Boolean AcceptanceTimeoutSeconds: Integer AdditionalPlayerCount: Integer BackfillMode: String CustomEventData: String Description: String GameProperties: - GameProperty GameSessionData: String GameSessionQueueArns: - String Name: String NotificationTarget: String RequestTimeoutSeconds: Integer RuleSetName: String

属性

AcceptanceRequired

确定匹配的玩家是否必须接受使用该配置创建的匹配的标记。如果要求接受,请设置为 TRUE

必需:是

类型:布尔值

Update requires: No interruption

AcceptanceTimeoutSeconds

等待玩家接受提议的匹配的时间长度(以秒为单位)。如果任何玩家拒绝匹配或在超时之前未接受匹配,票证将继续查找可接受的匹配。

必需:否

类型:整数

最低1

最高600

Update requires: No interruption

AdditionalPlayerCount

在匹配中为以后的玩家保留的玩家位置数。例如,假设配置的规则集指定一个 12 人团队的匹配。如果将其他玩家数设置为 2,则最初仅为匹配选择 10 位玩家。

必需:否

类型:整数

最低0

Update requires: No interruption

BackfillMode

用于回填使用该对战配置创建的游戏会话的方法。在游戏手动管理回填请求或不使用匹配回填功能时,请指定 MANUAL。可以指定 AUTOMATIC 以在游戏会话具有一个或多个开放位置时让 GameLift 创建 StartMatchBackfill 请求。要了解手动和自动回填的更多信息,请参阅使用 FlexMatch 回填现有游戏

必需:否

类型:字符串

允许的值AUTOMATIC | MANUAL

Update requires: No interruption

CustomEventData

附加到与对战配置相关的所有事件的信息。

必需:否

类型:字符串

最低0

最高256

Update requires: No interruption

Description

与对战配置关联的描述性标签。

必需:否

类型:字符串

最低1

最高1024

Update requires: No interruption

GameProperties

游戏会话的一组自定义属性,采用键值对格式。这些属性将通过启动新游戏会话的请求传递到游戏服务器进程。请参阅启动游戏会话

必需:否

类型GameProperty 列表

最高16

Update requires: No interruption

GameSessionData

一组自定义游戏会话属性,采用单个字符串值格式。该数据将通过启动新游戏会话的请求传递到游戏服务器进程。请参阅启动游戏会话

必需:否

类型:字符串

最低1

最高4096

Update requires: No interruption

GameSessionQueueArns

分配给 GameLift 游戏会话队列资源的 Amazon 资源名称 (ARN),它唯一地标识该资源。ARN 在所有区域中是唯一的。在为使用该对战配置创建的匹配放置游戏会话时,将使用这些队列。队列可以位于任何区域中。

必需:是

类型:字符串列表

Update requires: No interruption

Name

对战配置的唯一标识符。对战请求使用该名称标识要使用的对战配置。

必需:是

类型:字符串

最高128

模式[a-zA-Z0-9-\.]*

Update requires: Replacement

NotificationTarget

设置为接收对战通知的 SNS 主题 ARN。有关更多信息,请参阅设置对战通知

必需:否

类型:字符串

最低0

最高300

模式[a-zA-Z0-9:_/-]*

Update requires: No interruption

RequestTimeoutSeconds

对战票证在超时之前可以在进程中保留的最长持续时间(以秒为单位)。根据需要,可以重新提交由于超时而失败的请求。

必需:是

类型:整数

最低1

最高43200

Update requires: No interruption

RuleSetName

用于该配置的对战规则集的唯一标识符。您可以使用规则集名称或 ARN 值。对战配置只能使用在同一区域中定义的规则集。

必需:是

类型:字符串

最低1

最高256

模式[a-zA-Z0-9-\.]*|^arn:.*:matchmakingruleset\/[a-zA-Z0-9-\.]*

Update requires: No interruption

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回 MatchmakingConfiguration 名称,该名称是唯一的。

For more information about using the Ref function, see Ref.

Fn::GetAtt

Fn::GetAtt 内部函数返回此类型的一个指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 内部函数的更多信息,请参阅 Fn::GetAtt

Arn

MatchmakingConfiguration 的唯一 Amazon 资源名称 (ARN)。

Name

MatchmakingConfiguration 名称,该名称是唯一的。

示例

使用规则集和游戏会话队列创建对战配置

以下示例为游戏创建对战配置。它还使用 Ref 内部函数指定游戏会话队列和规则集,它们也位于模板中。

JSON

{ "Resources": { "QueueResource": { "Type": "AWS::GameLift::GameSessionQueue", "Properties": { "Name": "MyGameSessionQueue" } }, "MatchmakingRuleSetResource": { "Type": "AWS::GameLift::MatchmakingRuleSet", "Properties": { "Name": "MyRuleSet", "RuleSetBody": { "Fn::Sub": "{\"name\": \"MyMatchmakingRuleSet\",\"ruleLanguageVersion\": \"1.0\", \"teams\": [{\"name\": \"MyTeam\",\"minPlayers\": 1,\"maxPlayers\": 20}]}" } } }, "MatchmakingConfigurationResource": { "Type": "AWS::GameLift::MatchmakingConfiguration", "Properties": { "Name": "MyMatchmakingConfiguration", "AcceptanceRequired": true, "AcceptanceTimeoutSeconds": 60, "AdditionalPlayerCount": 8, "BackfillMode": "AUTOMATIC", "CustomEventData": "MyCustomEventData", "Description": "A basic matchmaking configuration", "GameSessionData": "MyGameSessionData", "GameProperties": [ { "Key": "level", "Value": "10" }, { "Key": "gameMode", "Value": "hard" } ], "GameSessionQueueArns": [ { "Fn::GetAtt": [ "QueueResource", "Arn" ] } ], "RequestTimeoutSeconds": 100, "RuleSetName": { "Ref": "MatchmakingRuleSetResource" } }, "DependsOn": [ "QueueResource", "MatchmakingRuleSetResource" ] } } }

YAML

Resources: QueueResource: Type: "AWS::GameLift::GameSessionQueue" Properties: Name: "MyGameSessionQueue" MatchmakingRuleSetResource: Type: "AWS::GameLift::MatchmakingRuleSet" Properties: Name: "MyRuleSet" # Rule set body for a game of 20 players RuleSetBody: !Sub | { "name": "MyMatchmakingRuleSet", "ruleLanguageVersion": "1.0", "teams": [{ "name": "MyTeam", "minPlayers": 1, "maxPlayers": 20 }] } MatchmakingConfigurationResource: Type: "AWS::GameLift::MatchmakingConfiguration" Properties: Name: "MyMatchmakingConfiguration" AcceptanceRequired: true AcceptanceTimeoutSeconds: 60 AdditionalPlayerCount: 8 BackfillMode: "AUTOMATIC" CustomEventData: "MyCustomEventData" Description: "A basic matchmaking configuration" GameSessionData: "MyGameSessionData" GameProperties: - Key: "level" Value: "10" - Key: "gameMode" Value: "hard" GameSessionQueueArns: - !GetAtt QueueResource.Arn RequestTimeoutSeconds: 100 RuleSetName: !Ref MatchmakingRuleSetResource DependsOn: - QueueResource - MatchmakingRuleSetResource

另请参阅