创建域

本页面介绍了如何创建、列出、介绍和更新 Game Servers 大区。大区是用户定义的游戏服务器集群分组,具体取决于游戏对于玩家填充的延迟时间要求。

准备工作

开始之前,我们建议您先了解 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. 将环境变量 GOOGLE_APPLICATION_CREDENTIALS 设置为包含凭据的 JSON 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。

    客户端库

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

创建大区

大区可以是全球性的,也可以是地区性的。如果注册到大区的集群来自跨越多个地理位置的地区(例如北美以及南美或欧洲和亚洲),则最好使用全球性大区。如果集群位于同一地区(例如欧洲西部),则地区性大区是一个不错的选择。如果地区间发生网络中断,全球性大区可能无法管理每个地区中的集群。为提高针对地区间网络中断的弹性,请确保在尽可能接近相关游戏服务器集群的地区中创建地区性大区。

例如,如果您在 europe-west1europe-west2europe-west3 地区中创建集群,以向欧洲西部用户提供服务,则也可以在这些地区之一中创建一个地区性大区。此配置可确保在由于网络中断而无法从全球其他地方访问这些地区时,该大区可以继续管理集群。

如果您不确定在哪里创建大区,则可以将其创建为全球性大区。随着您的要求变化,您可以在某个地区中创建一个新大区,而且该地区应距离此大区需要管理的集群较近。然后,您可以通过从全球性大区中删除并取消注册集群,再在新的地区性大区中注册这些集群,将现有集群移动到新的地区性大区。

控制台

  1. 在 Google Cloud 控制台中,转到大区和集群页面。

    转到 Game Servers

  2. 点击创建大区

  3. 大区名称框中,输入此大区的唯一标识符。

  4. 时区框中,选择此大区的时区。当您安排基于时间的事件(例如扩缩政策)时,它适用于此时区。

  5. 点击创建

gcloud

您可以使用 Google Cloud CLI 创建大区。如需创建全球性大区,请运行以下命令,并将占位符值(如 realmID)替换为适当的值:

gcloud game servers realms create realmID --time-zone tz

如需创建地区性大区,请运行以下命令,并将占位符值(如 realmID)替换为适当的值:

gcloud game servers realms create realmID --time-zone tz --location=region

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

  • realmID 是您可以为此大区指定的唯一标识符。
  • tz 是此大区的时区。当您安排基于时间的事件(例如扩缩政策)时,它适用于此时区。
  • region 是大区的地区。如需控制故障网域,请指定一个地区。建议您创建一个全球性大区,并忽略此选项。

REST

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

  • PROJECT_IDIAM 设置中列出的 Google Cloud 项目 ID
  • LOCATION:大区的区域。如果要控制故障网域,请指定支持的位置列表中的区域。我们建议您指定一个 global 大区。
  • REALM_ID:用户定义的新大区标识符。
  • TIME_ZONE:此大区的时区(例如 US/Eastern)。您可以为此时区安排基于时间的事件,例如扩缩政策。

请求 JSON 正文:

{
  "timeZone": "TIME_ZONE"
}

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

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

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

列出大区

控制台

  1. 在 Google Cloud 控制台中,转到大区和集群页面。

    转到 Game Servers

  2. 您可以使用过滤条件框,按不同属性过滤大区列表。

REST

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

  • PROJECT_IDIAM 设置中列出的 Google Cloud 项目 ID
  • LOCATION:大区的区域或 global

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

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

{
  "realms": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/realms/realm1",
      "createTime": CREATE_TIME,
      "updateTime": UPDATE_TIME,
      "timeZone": "US/Eastern",
      "etag": "PlXtLrUJ5pHQoZk0Lz-pWkPFN_dt3PXhIpRrJ5HHWu8"
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/realms/realm2",
      "createTime": CREATE_TIME,
      "updateTime": UPDATE_TIME,
      "timeZone": "America/Eirunepe",
      "etag": "ay1tXqeujLSsSd93n6uhlZwlxdNTOfG7El992Tsiz98"
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/realms/realm3",
      "createTime": CREATE_TIME,
      "updateTime": UPDATE_TIME,
      "timeZone": "Asia/Anadyr",
      "etag": "cBxzV2AWK_zgijSmYA-oXPWv3giwhUzssoWcqjPZFuk"
    }
  ]
}

gcloud

您可以使用 Google Cloud CLI 列出全球性大区或区域级大区。

如需同时列出全球性大区和地区性大区,请运行以下命令:

gcloud game servers realms list

如需列出特定位置的大区,请运行以下命令,并将 region 替换为 global 或 Google Cloud 地区

gcloud game servers realms list --location=region

描述大区

控制台

  1. 在 Google Cloud 控制台中,转到大区和集群页面。

    转到 Game Servers

  2. 您可以使用过滤条件框,按不同属性过滤大区列表。

  3. 在表格的最后一列中,点击省略号 并选择查看详细信息

gcloud

您可以使用 Google Cloud CLI 获取有关大区的详细信息,例如创建时间或时区。

如需描述全球性大区,请运行以下命令,并将 realmID 替换为您之前创建的大区的标识符:

gcloud game servers realms describe realmID

如果您创建了一个或多个非全球性大区,您可以详细描述特定地区中的大区。如需描述某个地区中的大区,请将 realmID 替换为您之前创建的大区的标识符,并将 region 替换为该大区所在的地区

gcloud game servers realms describe realmID --location=region

REST

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

  • PROJECT_IDIAM 设置中列出的 Google Cloud 项目 ID
  • LOCATION:大区的区域或 global
  • REALM_ID:用户定义的大区标识符

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

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

{
  "name": "projects/PROJECT_ID/locations/LOCATION/realms/REALM_ID",
  "createTime": CREATE_TIME,
  "updateTime": UPDATE_TIME,
  "timeZone": "Asia/Anadyr",
  "etag": "cBxzV2AWK_zgijSmYA-oXPWv3giwhUzssoWcqjPZFuk"
}

更新大区

gcloud

如需更新大区的字段,请在替换现有大区的 realmIDregion 后运行 gcloud game servers realms update 命令。以下命令可更新大区的时区值。将 tz 替换为支持的时区值

gcloud game servers realms update realmID --location=region \
    --time-zone=tz --no-dry-run

如需查找其他大区字段的标志,请参阅 gcloud 参考文档

REST

以下示例更新 timeZone 字段。如要更新其他字段,请将字段名称添加到 ?updateMask= 查询参数并请求 JSON 正文。

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

  • PROJECT_IDIAM 设置中列出的 Google Cloud 项目 ID
  • LOCATION:大区的区域
  • REALM_ID:用户定义的大区标识符
  • TIME_ZONE:此大区的已更新时区(例如 US/Eastern)。您可以为此时区安排基于时间的事件,例如扩缩政策。

请求 JSON 正文:

{
  "timeZone": "TIME_ZONE"
}

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

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

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/LOCATION/realms/REALM_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

后续步骤