创建配置

本页面介绍了如何在部署中注册、编辑、列出和查看 Game Servers 配置的详细信息。 此配置定义了 Agones 队列规范,其中包括游戏服务器计数、缓冲区和游戏服务器版本的相关信息。此配置还定义了扩缩配置,用于指定队列自动扩缩以满足需求的方式。

准备工作

开始之前,我们建议您先了解 Game Servers 概览中的关键概念。请确保您已执行以下任务:

  • 确保您已启用 Game Services API。
  • 启用 Game Services API
  • 选择已安装 gcloud CLI 的 shell,或者使用 API 客户端:
  • Cloud Shell

    如需启动 Cloud Shell,请执行以下步骤:

    1. 进入 Google Cloud 控制台。

      Google Cloud 控制台

    2. 在控制台的右上角,点击激活 Cloud Shell 按钮:

    控制台下方的框架内会打开一个 Cloud Shell 会话。您可以使用此 shell 运行 gcloud 命令。

    本地 shell

    安装 gcloud CLI

    确认您已为 Google Cloud CLI 设置所需的默认项目(否则,您稍后需要为每个命令明确指定 --project 标志):

    gcloud config list project
    

    如果无法运行以下命令来设置默认项目,请将 PROJECT_ID 替换为所需的项目 ID:

    gcloud config set project PROJECT_ID
    

    运行以下命令以验证 Google Cloud CLI 的版本。Game Servers 需要使用 306.0.0 版或更高版本的 gcloud CLI。

    gcloud version
    

    如需更新安装,请运行以下命令:

    gcloud components update
    

    curl / PowerShell

    如需将 REST API 与 curl 或 Windows PowerShell 搭配使用,请执行以下操作:

    1. 创建服务帐号。
    2. 以 JSON 文件的格式下载私钥。
    3. Set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.

    客户端库

    您可以使用客户端库以编程方式控制 Google Cloud Game Servers。如需了解库和身份验证的使用说明,请参阅客户端库概览

创建配置

确保您已创建 Game Servers 部署

控制台

  1. 在 Google Cloud 控制台中,转到游戏服务器部署页面。

    转到 Game Servers

  2. 在表格中查找部署。在表格的最后一列中,点击省略号 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。

  3. 要为部署创建新配置,请点击创建配置

  4. 配置名称框中,输入此配置的唯一标识符。

  5. (可选)在说明框中,输入此配置的说明。

  6. 队列配置名称框中,输入此队列配置的唯一标识符。

  7. 队列规范框中,输入队列规范

  8. (可选)在扩缩配置下,您可以指定一个或多个会自动纵向扩容或纵向缩容的配置。点击添加以添加扩缩配置。

    1. 扩缩配置名称框中,输入此扩缩配置的唯一标识符。
    2. (可选)在开始时间结束时间框中,安排此扩缩配置将处于活跃状态的时间段。如需了解详情,请参阅创建扩缩时间表
    3. Autoscape 规范框中,输入扩缩规范

gcloud

您可以使用 Google Cloud CLI 在部署中创建 Game Servers 配置。

如需创建游戏服务器配置,请执行以下操作:

  1. 将此队列规范复制到一个文件中。

    - name: fleet-spec-1
      fleetSpec:
       replicas: 10
       scheduling: Packed
       strategy:
         type: RollingUpdate
         rollingUpdate:
           maxSurge: 25%
           maxUnavailable: 25%
       template:
         metadata:
           labels:
             gameName: udp-server
         spec:
           ports:
           - name: default
             portPolicy: Dynamic
             containerPort: 7654
             protocol: UDP
           health:
             initialDelaySeconds: 30
             periodSeconds: 60
           sdkServer:
             logLevel: Info
             grpcPort: 9357
             httpPort: 9358
           template:
             spec:
               containers:
               - name: dedicated
                 image: gcr.io/agones-images/udp-server:0.21
                 imagePullPolicy: Always
                 resources:
                   requests:
                     memory: 200Mi
                     cpu: 500m
                   limits:
                     memory: 200Mi
                     cpu: 500m
    
  2. 运行以下命令并将占位符值(例如 deploymentIDconfigID)替换为适当的值:

    gcloud game servers configs create configID --deployment deploymentID --fleet-configs-file fleetSpecFile
    

    变量占位符对应于以下说明:

  • configID 是您可以为此配置指定的唯一标识符。
  • deploymentID 是部署的唯一标识符。
  • fleetSpecFile 是具有 Agones 队列规范的文件的路径。

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_IDIAM 设置中列出的 Google Cloud 项目 ID
  • DEPLOYMENT_ID:用户定义的部署标识符
  • CONFIG_ID:用户定义的配置标识符

请求 JSON 正文:

{
  "fleetConfigs": [
    {
      "name": "fleet-spec-1",
      "fleetSpec": "{
        \"replicas\": 10,
        \"scheduling\": \"Packed\",
        \"template\": {
          \"metadata\": {
            \"labels\": {
              \"gameName\": \"udp-server\"
            }
          },
          \"spec\": {
            \"ports\": [
              {
                \"name\": \"default\",
                \"portPolicy\": \"Dynamic\",
                \"containerPort\": 7654,
                \"protocol\": \"UDP\"
              }
            ],
            \"health\": {
              \"periodSeconds\": 60,
              \"initialDelaySeconds\": 30
            },
            \"sdkServer\": {
              \"logLevel\": \"Info\",
              \"grpcPort\": 9357,
              \"httpPort\": 9358
            },
            \"template\": {
              \"spec\": {
                \"containers\": [
                  {
                    \"name\": \"dedicated\",
                    \"image\": \"gcr.io/agones-images/udp-server:0.21\",
                    \"imagePullPolicy\": \"Always\",
                    \"resources\": {
                      \"requests\": {
                        \"memory\": \"200Mi\",
                        \"cpu\": \"500m\"
                      },
                      \"limits\": {
                        \"memory\": \"200Mi\",
                        \"cpu\": \"500m\"
                      }
                    }
                  }
                ]
              }
            }
          }
        }
      }"
    }
  ]
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/CONFIG_ID",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

编辑配置

您无法编辑 Game Servers 配置,因为配置不可变。如果要编辑配置,请复制配置(查看配置详情),在本地修改配置,然后使用更新后的版本来创建新配置。

列出配置

控制台

  1. 在 Google Cloud 控制台中,转到游戏服务器部署页面。

    转到 Game Servers

  2. 在表格中查找部署。在表格的最后一列中,点击省略号 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。

gcloud

您可以使用 Google Cloud CLI 列出配置。

如需列出所有配置,请运行以下命令:

gcloud game servers configs list

如需列出部署中的所有配置,请运行以下命令并将 deploymentID 替换为要在其中列出配置的父级部署

gcloud game servers configs list --deployment=deploymentID

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_IDIAM 设置中列出的 Google Cloud 项目 ID
  • DEPLOYMENT_ID:用户定义的部署标识符

根据您发送的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "gameServerConfigs": [
    {
      "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/MY-CONFIG-1",
      "createTime": CREATE_TIME,
      "updateTime": UPDATE_TIME,
      "fleetConfigs": [
        {
          "fleetSpec": ...
          "name": "MY-CONFIG-1"
        }
      ],
      "description": "Config 1"
    },
    {
      "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/MY-CONFIG-2",
      "createTime": CREATE_TIME,
      "updateTime": UPDATE_TIME,
      "fleetConfigs": [
        {
          "fleetSpec": ...
          "name": "MY-CONFIG-2"
        }
      ],
      "description": "Config 2"
    },
  ]
}

查看有关配置的详细信息

控制台

  1. 在 Google Cloud 控制台中,转到游戏服务器部署页面。

    转到 Game Servers

  2. 在表格中查找部署。在表格的最后一列中,点击省略号 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。

  3. 在表格中查找配置。在表格的最后一列中,点击省略号 并选择查看配置

gcloud

您可以使用 Google Cloud CLI 查找有关配置的详细信息,例如创建时间:

如需查看配置的详细信息,请运行以下命令,并将占位符值(如 deploymentIDconfigID)替换为适当的值:

gcloud game servers configs describe configID --deployment deploymentID

输出会为您提供配置的详细信息。

变量占位符对应于以下说明:

  • configID 是您为游戏服务器配置指定的唯一标识符。
  • deploymentID 是父级部署的唯一标识符。

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_IDIAM 设置中列出的 Google Cloud 项目 ID
  • DEPLOYMENT_ID:用户定义的部署标识符
  • CONFIG_ID:用户定义的配置标识符

根据您发送的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/CONFIG_ID",
  "createTime": CREATE_TIME,
  "updateTime": UPDATE_TIME,
  "fleetConfigs": [
    {
      "fleetSpec": ...
      "name": "CONFIG_ID"
    }
  ],
  "description": "My config"
}

后续步骤