

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

# 更新 Amazon GameLift Servers 托管式容器实例集
<a name="containers-update-fleet"></a>

您可以更新托管式容器实例集的大部分属性，包括容器组定义。根据所更新的设置，实例集更新可能会启动新的实例集部署。在实例集部署过程中，实例集中的所有实例都将被移除，并替换为采用新配置的实例。需要重新部署的设置包括：
+ 容器组定义，包括对容器映像的更新
+ 连接端口范围和入站权限
+ 日志配置

您可以在用于创建容器实例集的 [Amazon GameLift Servers 控制台](https://console.aws.amazon.com/gamelift/)或 AWS Command Line Interface（AWS CLI）中跟踪实例集部署状态。

**注意**  
您无法更新实例集的运行时环境。创建实例集时，实例集的亚马逊机器映像（AMI）会设置为最新可用的 Linux AMI 版本。部署到该实例集的所有容器映像都必须与此版本兼容。要更改实例集的 AMI 或升级到新版本，您必须创建新的实例集。作为最佳实践，我们建议每 30 天更换一次实例集，以便为托管游戏服务器维护安全且最新的运行时环境。有关更多指导，请参阅[Amazon GameLift Servers 的安全最佳实践](security-best-practices.md)。

------
#### [ Console ]

在 [Amazon GameLift Servers 控制台](https://console.aws.amazon.com/gamelift/)中，选择要创建实例集的 AWS 区域。容器组定义必须与您要创建实例集的区域保持一致。

打开控制台的左侧导航栏，并选择**托管容器：实例集**。在托管式容器实例集页面上，从列表中选择一个实例集，然后选择**编辑**。

1. 根据需要更新容器实例集设置。完成后，选择 **Create (创建)**。

1. 如果您的更新需要重新部署实例集，系统会要求您指定以下部署选项：
   + 游戏会话保护。您可以选择保护具有处于活动状态的游戏会话的实例集实例（安全部署）。使用此设置，直到游戏会话结束后才会替换实例集实例。或者，您也可以选择无论游戏会话活动如何，都替换实例集实例（非安全部署）。非安全部署适用于开发和测试阶段，可缩短部署时间。
   + 最低运行正常百分比。您可以管理替换实例集实例的速度。使用此设置，可在部署期间保持最低数量的正常任务。较低的数值会优先保证部署速度，而较高的数值则可确保游戏服务器在整个部署过程中保持较高的可用性。
   + 部署失败策略。决定部署失败时要采取的措施。部署失败指部分更新后的容器未通过状态检查，被判定为异常状态。您可以将部署设置为自动将所有实例集实例回滚到先前部署的状态。或者，您也可以选择保留部分异常的实例集实例以用于调试。

如果请求成功，控制台将显示托管容器实例集的**部署**选项卡。您可以使用此选项卡跟踪每个部署的状态。如果您开始对实例集进行新的部署，则此操作会自动取消实例集当前正在进行的任何部署。

------
#### [ AWS CLI ]

要使用 AWS CLI 创建容器实例集，请打开命令行窗口，然后使用 `update-container-fleet` 命令。有关此命令的更多信息，请参阅《AWS CLI 命令参考》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/update-container-fleet.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/update-container-fleet.html)。

以下示例更新了一个具有以下特征的现有容器实例集：
+ 它将游戏服务器容器组定义更新为使用版本 2。
+ 它指定了安全部署选项。

```
{
  "DeploymentConfiguration": { 
    "ImpairmentStrategy": "ROLLBACK",
    "MinimumHealthyPercentage": 75,
    "ProtectionStrategy": "WITH_PROTECTION"
  },
  "FleetId": "containerfleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
  "GameServerContainerGroupDefinitionName": "arn:aws:gamelift:us-west-2:111122223333:containergroupdefinition/MyAdventureGameContainerGroup:2"
}
```

------

