本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
游戏会话放置事件
A GameLift mazon 会在处理每个游戏会话放置请求时发出事件。您可以将这些事件发布到 Amazon SNS 主题,如请参阅设置游戏会话置放通知。中所述。这些事件还会以近乎实时的方式发送到 Amazon CloudWatch Events,并尽力而为。
本主题描述了游戏会话放置事件的结构,并提供了每种事件类型的示例。有关游戏会话放置请求状态的更多信息,请参阅 Amazon GameLift API 参考GameSessionPlacement中的。
放置事件语法
事件表示为 JSON 对象。事件结构符合 CloudWatch 事件模式,具有相似的顶级字段和特定于服务的详细信息。
顶级字段包括以下内容(有关更多详细信息,请参阅事件模式):
- 版本
-
此字段始终设置为 0(零)。
- id
-
事件的唯一标识符。
- detail-type
-
此值始终为
GameLift Queue Placement Event
。 - 源
-
此值始终为
aws.gamelift
。 - account
-
用于管理 Amazon 的 AWS 账户 GameLift。
- time
-
事件时间戳
- region
-
正在处理放置请求的地 AWS 区。这是正在使用的游戏会话队列所在的区域。
- 资源
-
正在处理放置请求的游戏会话队列的 ARN 值。
PlacementFulfilled
放置请求已成功完成。新的游戏会话已经开始,并且已经为游戏会话放置请求中列出的每位玩家创建了新的玩家会话。玩家连接信息可用。
详细语法:
- 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
-
表示此请求何时完成的时间戳。
- gameSessionRegion
-
AWS 主办游戏会话的舰队区域。这与中的区域令牌相对应
GameSessionArn
。 - placedPlayerSessions
-
为游戏会话放置请求中的每位玩家创建的玩家会话集合。
示例
{ "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" } ] } }
PlacementCancelled
通过拨打 GameLift 服务电话,放置请求被取消StopGameSessionPlacement。
详细信息:
- 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" } }
PlacementTimedOut
在队列的时间限制到期之前,游戏会话放置未成功完成。根据需要,可以重新提交放置请求。
详细信息:
- 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" } }
PlacementFailed
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" } }