

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

# 更新 Amazon GameLift Servers 容器实例集的容器组定义
<a name="containers-modify-groups"></a>

您可以更新容器实例集的大部分属性，包括各个独立的容器定义。容器组定义包含版本号。更新容器组定义时，Amazon GameLift Servers 会保存更新并递增该定义的版本号。配置容器实例集时，可以指定要部署的容器组定义版本。

更新容器组定义后，您可以将新版本部署到新的或现有的容器实例集中。

## 更新游戏服务器容器组定义
<a name="containers-modify-groups-edit"></a>

本主题介绍如何使用Amazon GameLift Servers控制台或 AWS CLI 工具更新游戏服务器容器组定义。有关可选功能的更多详细信息，请参阅[自定义 Amazon GameLift Servers 容器实例集](containers-design-fleet.md)。

**要更新容器组定义，请执行以下操作：**

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

在[Amazon GameLift Servers控制台](https://console.aws.amazon.com/gamelift/)中，选择要创建容器组 AWS 区域 的位置。

打开控制台的左侧导航栏，并选择**托管容器：组定义**。在容器组定义页面上，选择要更新的容器组定义和版本。

保存更新后，您可以使用新版本创建新的容器实例集，也可以将更新部署到现有的容器实例集。

**步骤 1：定义容器组定义详情**
+ 您可以更新总内存和 vCPU 限制设置。

**步骤 2：添加容器定义**

容器定义可以进行以下更新：
+ 更新现有容器定义。
+ 添加新的支持容器定义。
+ 移除支持容器定义。

1. 您可以更新 **ECR 映像 URI**。请务必更新**服务器 SDK 版本**设置以匹配新映像。

1. 您可以根据需要更新**内部容器端口范围**。当您对这些设置所做的更改被部署到容器实例集时，可能会影响该实例集的连接端口设置。有关更多详细信息，请参阅[配置网络连接](containers-design-fleet.md#containers-custom-network)。

**步骤 3：配置依赖关系**
+ 您可以按需更改依赖关系。有关更多信息，请参阅 [设置容器依赖关系](containers-design-fleet.md#containers-design-fleet-dependencies)。

**第 3 步：审核并创建**
+ 查看您的容器组定义更新。使用**编辑**，对任何部分进行其他任何更改。完成后，选择**创建**以生成新版本的容器组定义。

  如果请求成功，控制台将显示新容器组定义资源的详细信息页面。初始状态为 `COPYING`，此时 Amazon GameLift Servers 开始为该组的所有容器映像拍摄快照。此阶段完成后，容器组定义状态将更改为 `READY`。容器组定义必须处于 `READY` 状态，才能使用它创建容器实例集。

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

使用 AWS CLI 创建或更新容器组定义时，请在单独`JSON`的文件中维护您的容器定义配置。您可以在 CLI 命令中引用该文件。有关架构示例，请参阅[创建容器定义 `JSON` 文件](containers-create-groups.md#containers-definitions-create)。

更新定义时，您只需指定要更新的值即可。Amazon GameLift Servers 会保留您未包含在更新请求中的任何值。不过，如果要更改容器定义，则需提供一套完整的定义。

**更新容器组定义**  
要更新新的容器组定义，请使用 `update-container-group-definition` CLI 命令。有关此命令的更多信息，请参见《*AWS CLI 命令参考*》[update-container-group-definition](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-container-group-definition.html)中的。  

**Example ：游戏服务器容器组**  
在检索、更新或删除容器组定义时，或者在创建或更新容器实例集时，您可以指定容器组定义版本。每个容器组定义都有一个版本属性。此外，定义的 ARN 值也会指定版本号。  
此示例展示了更改游戏服务器容器组定义的请求。假设您已经创建了一个包含该组容器定义的 JSON 文件。此示例使用 ARN 值作为定义名称，并指定此次更新针对的是版本 1。  

```
aws gamelift update-container-group-definition \
    --name arn:aws:gamelift:us-west-2:111122223333:containergroupdefinition/MyAdventureGameContainerGroup:1 \
    --operating-system AMAZON_LINUX_2023 \
    --container-group-type GAME_SERVER \
    --total-memory-limit-mebibytes 4096 \
    --total-vcpu-limit 1 \
    --container-definitions file://SimpleServer.json
```

------

## 克隆容器组定义
<a name="containers-create-groups-clone"></a>

您可以使用 Amazon GameLift Servers 控制台来克隆现有的容器组定义。

**克隆容器组**

1. 在 [Amazon GameLift Servers 控制台](https://console.aws.amazon.com/gamelift/)中，转到左侧导航窗格，并选择**容器组**。

1. 在**容器组**列表页面上，选择要克隆的现有容器组。选择容器组后，**克隆**按钮变为活动状态。

1. 选择**克隆**。此操作将打开带有预填设置的容器组创建向导。

1. 为克隆的容器组输入新名称。同一区域中的容器组必须具有唯一的名称。

1. 依次浏览容器组和容器定义页面，进行审核，然后**创建**新的容器组。