本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Amazon GameLift Servers 容器实例集创建容器组定义
容器组定义描述了如何将容器化游戏服务器应用程序部署到容器实例集。它是一个蓝图,告知 Amazon GameLift Servers 应将哪些容器映像部署到实例集,以及如何运行这些映像。创建容器实例集时,需要指定要部署到实例集的容器组定义。有关容器组的更多信息,请参阅容器实例集组件。
开始之前
开始创建容器组定义之前的操作提示:
-
完成容器映像的最终制作,并将其推送到您计划创建容器组的同一 AWS 区域下的 Amazon Elastic Container Registry(Amazon ECR)存储库。Amazon GameLift Servers 会在您创建容器组定义时捕获每个映像的快照,并在部署到容器实例集时使用该快照。请参阅为 Amazon GameLift Servers 构建容器映像。
-
将您的容器定义创建为 JSON 文件。容器组定义包含一个或多个容器定义。如果您使用适用于 Amazon GameLift Servers 的AWS CLI 来创建容器组定义,则可以使用这些 JSON 文件。
-
验证您的 AWS 用户是否具有访问 Amazon ECR 存储库的 IAM 权限。请参阅Amazon GameLift Servers 的 IAM 权限示例。
创建游戏服务器容器组定义
游戏服务器容器组用于运行您的游戏服务器软件。一个游戏服务器容器组有一个游戏服务器容器,该容器运行游戏服务器可执行文件。它还可以包含一个或多个支持容器,用于运行其他软件来支持您的游戏服务器。(这类容器有时称为“Sidecar”容器。)
本主题介绍如何使用 Amazon GameLift Servers 控制台或 AWS CLI 工具来创建简单的游戏服务器容器组定义。有关可选功能的更多详细信息,请参阅自定义 Amazon GameLift Servers 容器实例集。
注意
创建容器组定义和容器定义后,您可以修改其中的大部分设置。如果对容器定义进行更改,Amazon GameLift Servers 会捕获更新后的容器映像的新快照。
要创建简单的游戏服务器容器组定义,请执行以下操作:
以下说明介绍如何使用所需的最少参数和 Amazon GameLift Servers 默认值来创建容器组定义。
创建容器定义 JSON 文件
创建容器组定义时,还要为该组定义容器。容器定义需指定存储容器映像的 Amazon ECR 存储库,并可选择配置网络端口、CPU 与内存使用限制及其他设置。我们建议创建单个 JSON 文件,集中存储容器组中所有容器的配置。通过维护文件有助于存储、共享这些关键配置并进行版本跟踪。如果您使用 AWS CLI 创建容器组定义,则可以在命令中引用该文件。
创建容器定义
创建并打开一个新的
.JSON文件。例如:[~/work/glc]$vim SimpleServer.json为该组的每个容器创建单独的容器定义。复制以下示例内容,并根据需要对其进行修改,以适应您的容器。有关容器定义语法的详细信息,请参阅《Amazon GameLift Servers API 参考》中的 ContainerDefinitionInput。
将文件保存在本地,以便在 AWS CLI 命令中引用该文件。
此示例描述了游戏服务器容器组的必备容器。该必备副本容器包括您的游戏服务器应用程序、Amazon GameLift Servers 代理,也可以包括用于托管游戏的其他支持软件。定义必须包括名称、图像 URI 和端口配置。此示例还设置了一些特定于容器的资源限制。
{ "ContainerName": "MyAdventureGameServer", "ImageUri": "111122223333.dkr.ecr.us-east-1.amazonaws.com/gl-containers:myadventuregame-server", "PortConfiguration": { "ContainerPortRanges": [ { "FromPort": 2000, "Protocol": "TCP", "ToPort": 2010 } ] }, "ServerSdkVersion": "5.2.0" }