

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

# 游戏会话放置事件
<a name="queue-events"></a>

Amazon GameLift Servers 会在处理每个游戏会话放置请求时发出事件。您可以将这些事件发布到 Amazon SNS 主题，如[请参阅设置游戏会话置放通知。](queue-notification.md)中所述。这些事件还会以近乎实时的方式发送到 Amazon CloudWatch Events，并尽力而为。

本主题描述了游戏会话放置事件的结构，并提供了每种事件类型的示例。有关游戏会话放置请求状态的更多信息，请参阅 *Amazon GameLift ServersAPI 参考[GameSessionPlacement](https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameSessionPlacement.html)*中的。

## 放置事件语法
<a name="queue-events-header"></a>

事件表示为 JSON 对象。事件结构符合 CloudWatch 事件模式，具有相似的顶级字段和特定于服务的详细信息。

顶级字段包括以下内容（有关更多详细信息，请参阅[事件模式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html)）：

版本  
此字段始终设置为 0（零）。

id  
事件的唯一标识符。

detail-type  
此值始终为 `GameLift Queue Placement Event`。

source  
此值始终为 `aws.gamelift`。

账户  
用于管理的 AWS 账户Amazon GameLift Servers。

时间  
事件时间戳

region  
正在处理放置请求的地 AWS 区。这是正在使用的游戏会话队列所在的区域。

资源  
正在处理放置请求的游戏会话队列的 ARN 值。

## PlacementFulfilled
<a name="queue-events-placementfulfilled"></a>

放置请求已成功完成。新的游戏会话已经开始，并且已经为游戏会话放置请求中列出的每位玩家创建了新的玩家会话。玩家连接信息可用。

**详细语法：**

placementID  
分配给游戏会话放置请求的唯一标识符。

端口  
新游戏会话的端口号。

gameSessionArn  
新游戏会话的 ARN 标识符。

ipAddress  
游戏会话的 IP 地址。

DNSName  
分配给正在运行新游戏会话的实例的 DNS 标识符。根据运行游戏会话的实例是否启用 TLS，值格式会有所不同。在支持 TLS 的实例集上连接到游戏会话时，玩家必须使用 DNS 名称，而不是 IP 地址。  
支持 TLS 的实例集:. `<unique identifier>.<region identifier>.amazongamelift.com`   
Non-TLS-enabled 舰队：`ec2-<unique identifier>.compute.amazonaws.com`。

startTime  
表示何时将此请求放入队列的时间戳。

endTime  
表示此请求何时完成的时间戳。

gameSessionRegion  
AWS 主办游戏会话的舰队所在区域。

gameSessionLocation  
运行游戏会话的舰队位置。此值可能指定舰队的所在地区或远程位置。

playerGatewayStatus  
运行此游戏会话的舰队所在地玩家网关的状态。  
可能的值包括：  
+ `ENABLED`— 玩家网关可用于路由该游戏会话的玩家连接。
+ `DISABLED`— 玩家网关不适用于此游戏会话。

计算名称  
托管游戏会话的计算资源的描述性标签。对于 EC2 队列，这是 EC2 实例 ID。对于容器队列，队列实例上的每个游戏服务器容器组都被分配了一个计算名称。对于 Anywhere 队列，这是自定义计算名称。

placedPlayerSessions  
为游戏会话放置请求中的每位玩家创建的玩家会话集合。

### 示例
<a name="queue-events-placementfulfilled-example"></a>

```
{
  "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/us-east-1/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",
    "playerGatewayStatus": "ENABLED",
    "gameSessionLocation": "us-east-1",
    "computeName": "i-1234567890abcdef0",
    "placedPlayerSessions": [
      {
        "playerId": "player-1"
        "playerSessionId": "psess-1232131232324124123123"
      }
    ]
  }
}
```

## PlacementCancelled
<a name="queue-events-placementcancelled"></a>

通过拨打 GameLift 服务电话，放置请求被取消[StopGameSessionPlacement](https://docs.aws.amazon.com/gamelift/latest/apireference/API_StopGameSessionPlacement.html)。

详细信息：

placementID  
分配给游戏会话放置请求的唯一标识符。

startTime  
表示何时将此请求放入队列的时间戳。

endTime  
表示此请求何时取消的时间戳。

### 示例
<a name="queue-events-placementcancelled-example"></a>

```
{
  "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
<a name="queue-events-placementtimedout"></a>

在队列的时间限制到期之前，游戏会话放置未成功完成。根据需要，可以重新提交放置请求。

详细信息：

placementID  
分配给游戏会话放置请求的唯一标识符。

startTime  
表示何时将此请求放入队列的时间戳。

endTime  
表示此请求何时取消的时间戳。

### 示例
<a name="queue-events-placementtimedout-example"></a>

```
{
  "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
<a name="queue-events-placementfailed"></a>

Amazon GameLift Servers 无法满足游戏会话请求。这通常是由意外的内部错误引起的。根据需要，可以重新提交放置请求。

详细信息：

placementID  
分配给游戏会话放置请求的唯一标识符。

startTime  
表示何时将此请求放入队列的时间戳。

endTime  
表示此请求何时失败的时间戳。

### 示例
<a name="queue-events-placementfailed-example"></a>

```
{
  "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"
  }
}
```