游戏会话放置事件
Amazon GameLift 会在处理每个游戏会话放置请求时发出事件。您可以将这些事件发布到 Amazon SNS 主题,如请参阅设置游戏会话置放通知。中所述。这些事件还会尽力近乎实时地发送到 Amazon CloudWatch Events Amazon CloudWatch Events。
本主题描述了游戏会话放置事件的结构,并提供了每种事件类型的示例。有关游戏会话放置请求状态的更多信息,请参阅《 Amazon GameLift API 参考》中的 GameSession Placement。
放置事件语法
事件表示为 JSON 对象。事件结构符合 CloudWatch 事件模式,具有相似的顶级字段和特定于服务的详细信息。
顶级字段包括以下内容(有关更多详细信息,请参阅事件模式):
- 版本
-
此字段始终设置为 0(零)。
- id
-
事件的唯一标识符。
- detail-type
-
此值始终为
GameLift Queue Placement Event
。 - 源
-
此值始终为
aws.gamelift
。 - account
-
用于管理 Amazon GameLift 的AWS账户。
- 时间
-
事件时间戳
- region
-
正在处理放置请求的地AWS区。这是正在使用的游戏会话队列所在的区域。
- 资源
-
正在处理放置请求的游戏会话队列的 ARN 值。
已完成展示位置
放置请求已成功完成。新的游戏会话已经开始,并且已经为游戏会话放置请求中列出的每位玩家创建了新的玩家会话。玩家连接信息可用。
详细语法:
- placementID
-
分配给游戏会话放置请求的唯一标识符。
- port
-
新游戏会话的端口号。
- GameSessionArn
-
新游戏会话的 ARN 标识符。
- ipAddress
-
游戏会话的 IP 地址。
- DNSName
-
分配给正在运行新游戏会话的实例的 DNS 标识符。根据运行游戏会话的实例是否启用 TLS,值格式会有所不同。在支持 TLS 的实例集上连接到游戏会话时,玩家必须使用 DNS 名称,而不是 IP 地址。
支持 TLS 的实例集:.
<unique identifier>.<region identifier>.amazongamelift.com
未启用 TLS 的实例集:.
ec2-<unique identifier>.compute.amazonaws.com
- startTime
-
表示何时将此请求放入队列的时间戳。
- endTime
-
表示此请求何时完成的时间戳。
- 游戏会话区域
-
托管游戏会话的实例集所在的 AWS 区域。这与
GameSessionArn
中的区域令牌对应。 - PlacedPlayer 会话
-
为游戏会话放置请求中的每位玩家创建的玩家会话集合。
示例
{ "version": "0", "id": "1111aaaa-bb22-cc33-dd44-5555eeee66ff", "detail-type": "GameLift Queue Placement Event", "source": "aws.gamelift", "account": "123456789012", "time": "2021-03-01T15:50:52Z", "region": "us-east-1", "resources": [ "arn:aws:gamelift:us-west-2:123456789012:gamesessionqueue/MegaFrogRace-NA" ], "detail": { "type": "PlacementFulfilled", "placementId": "9999ffff-88ee-77dd-66cc-5555bb44aa", "port": "6262", "gameSessionArn": "arn:aws:gamelift:us-west-2::gamesession/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa/4444dddd-55ee-66ff-77aa-8888bbbb99cc", "ipAddress": "98.987.98.987", "dnsName": "ec2-12-345-67-890.us-west-2.compute.amazonaws.com", "startTime": "2021-03-01T15:50:49.741Z", "endTime": "2021-03-01T15:50:52.084Z", "gameSessionRegion": "us-west-2", "placedPlayerSessions": [ { "playerId": "player-1" "playerSessionId": "psess-1232131232324124123123" } ] } }
放置已取消
拨打 GameLift 服务 stopGamessionPlacement 后,放置请求被取消。
详细信息:
- placementID
-
分配给游戏会话放置请求的唯一标识符。
- startTime
-
表示何时将此请求放入队列的时间戳。
- endTime
-
表示此请求何时取消的时间戳。
示例
{ "version": "0", "id": "1111aaaa-bb22-cc33-dd44-5555eeee66ff", "detail-type": "GameLift Queue Placement Event", "source": "aws.gamelift", "account": "123456789012", "time": "2021-03-01T15:50:52Z", "region": "us-east-1", "resources": [ "arn:aws:gamelift:us-west-2:123456789012:gamesessionqueue/MegaFrogRace-NA" ], "detail": { "type": "PlacementCancelled", "placementId": "9999ffff-88ee-77dd-66cc-5555bb44aa", "startTime": "2021-03-01T15:50:49.741Z", "endTime": "2021-03-01T15:50:52.084Z" } }
放置超时
在队列的时间限制到期之前,游戏会话放置未成功完成。根据需要,可以重新提交放置请求。
详细信息:
- placementID
-
分配给游戏会话放置请求的唯一标识符。
- startTime
-
表示何时将此请求放入队列的时间戳。
- endTime
-
表示此请求何时取消的时间戳。
示例
{ "version": "0", "id": "1111aaaa-bb22-cc33-dd44-5555eeee66ff", "detail-type": "GameLift Queue Placement Event", "source": "aws.gamelift", "account": "123456789012", "time": "2021-03-01T15:50:52Z", "region": "us-east-1", "resources": [ "arn:aws:gamelift:us-west-2:123456789012:gamesessionqueue/MegaFrogRace-NA" ], "detail": { "type": "PlacementTimedOut", "placementId": "9999ffff-88ee-77dd-66cc-5555bb44aa", "startTime": "2021-03-01T15:50:49.741Z", "endTime": "2021-03-01T15:50:52.084Z" } }
放置失败
Amazon GameLift 无法满足游戏会话请求。这通常是由意外的内部错误引起的。根据需要,可以重新提交放置请求。
详细信息:
- placementID
-
分配给游戏会话放置请求的唯一标识符。
- startTime
-
表示何时将此请求放入队列的时间戳。
- endTime
-
表示此请求何时失败的时间戳。
示例
{ "version": "0", "id": "39c978f3-ba46-3f7c-e787-55bfcca1bd31", "detail-type": "GameLift Queue Placement Event", "source": "aws.gamelift", "account": "252386620677", "time": "2021-03-01T15:50:52Z", "region": "us-east-1", "resources": [ "arn:aws:gamelift:us-west-2:252386620677:gamesessionqueue/MegaFrogRace-NA" ], "detail": { "type": "PlacementFailed", "placementId": "e4a1119a-39af-45cf-a990-ef150fe0d453", "startTime": "2021-03-01T15:50:49.741Z", "endTime": "2021-03-01T15:50:52.084Z" } }