本页面介绍如何在部署中创建、更新 Game Servers 发布以及查看其详情。发布可将游戏服务器配置映射到目标大区。如需查看创建部署,添加配置然后发布部署的端到端示例,请参阅配置集群扩缩行为。
图 1.配置版本 1.0 发布到美国大区,版本 1.1 发布到欧洲和日本大区
如需了解详情,请参阅 Game Servers 概览。
准备工作
开始之前,我们建议您先了解 Game Servers 概览中的关键概念。请确保您已执行以下任务:
- 确保您已启用 Game Services API。 启用 Game Services API
- 选择已安装 gcloud CLI 的 shell,或者使用 API 客户端:
进入 Google Cloud 控制台。
在控制台的右上角,点击激活 Cloud Shell 按钮:
- 创建服务帐号。
- 以 JSON 文件的格式下载私钥。
-
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.
Cloud Shell
如需启动 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 搭配使用,请执行以下操作:
客户端库
您可以使用客户端库以编程方式控制 Google Cloud Game Servers。如需了解库和身份验证的使用说明,请参阅客户端库概览。
更新发布
更新发布的过程与创建发布的过程相同。首先,确保您已创建 Game Servers 配置。如果您要使用另一个配置来定位特定大区,请创建单独的替换配置。
更新发布的默认配置
默认游戏服务器配置会发布到所有大区。如需使用另一个配置来定位特定大区,请参阅替换特定大区的配置。
控制台
在 Google Cloud 控制台中,转到游戏服务器部署页面。
在表格中查找部署。在表格的最后一列中,点击省略号 more_vert 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。
点击管理发布。
(可选)在选择配置列表中,选择应用于所有大区的默认配置。
点击保存。
gcloud
如需使用 Google Cloud CLI 更新 Game Servers 部署的默认配置,请执行以下操作:
替换以下占位值后运行以下命令:
- deploymentID 是部署的唯一标识符。
- configID 是配置的唯一标识符。
gcloud game servers deployments update-rollout deploymentID --default-config configID --dry-run
输出会返回
targetState
,以便您预览更改。如需应用更改,请运行以下命令:
gcloud game servers deployments update-rollout deploymentID --default-config configID --no-dry-run
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:IAM 设置中列出的 Google Cloud 项目 ID
- DEPLOYMENT_ID:用户定义的部署标识符
- CONFIG_ID:用户定义的配置标识符
请求 JSON 正文:
{ "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID", "defaultGameServerConfig": "CONFIG_ID" }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 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", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
清除发布的默认配置
清除默认配置,以便从此 Game Servers 集群中移除此部署的队列配置。
控制台
在 Google Cloud 控制台中,转到游戏服务器部署页面。
在表格中查找部署。在表格的最后一列中,点击省略号 more_vert 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。
点击管理发布。
在选择配置列表中,选择(无默认配置)。
点击保存。
gcloud
如需使用 Google Cloud CLI 清除 Game Servers 部署的默认配置,请执行以下操作:
替换以下占位值后运行以下命令:
- deploymentID 是部署的唯一标识符。
gcloud game servers deployments update-rollout deploymentID --clear-default-config --dry-run
输出会返回
targetState
,以便您预览更改。如需应用更改,请运行以下命令:
gcloud game servers deployments update-rollout deploymentID --clear-default-config --no-dry-run
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:IAM 设置中列出的 Google Cloud 项目 ID
- DEPLOYMENT_ID:用户定义的部署标识符
请求 JSON 正文:
{ "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID", "defaultGameServerConfig": "" }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 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", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
替换特定大区的配置
如果您要使用另一个配置来定位特定大区,请创建单独的替换配置,然后选择一个或多个将接收此替换配置(而非默认配置)的大区。
控制台
在 Google Cloud 控制台中,转到游戏服务器部署页面。
在表格中查找部署。在表格的最后一列中,点击省略号 more_vert 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。
点击管理发布。
(可选)在选择配置列表中,选择应用于与替换配置不匹配的所有大区的默认配置。
在替换配置下,您可以指定一个或多个替换配置,以及要与这些配置关联的大区。
- 从配置列表中选择一个替换配置,然后从大区列表中选择要与之关联的大区。
- 使用箭头按钮更改替换配置在列表中的优先顺序。
- 点击添加。
点击保存。
gcloud
如需使用 Google Cloud CLI 将配置替换应用于特定大区,请执行以下操作:
将以下代码复制到一个文件中,并替换以下占位值:
- realmID 是大区的完全限定标识符,例如
projects/<projectID>/locations/<region>/realms/<realmID2>
。 - configID 是配置的唯一标识符。
- realmsSelector: realms: - realmID configVersion: configID
- realmID 是大区的完全限定标识符,例如
替换以下占位值后运行以下命令:
- deploymentID 是部署的唯一标识符。
- configOverrideFile 是具有替换配置的文件的路径。
gcloud game servers deployments update-rollout deploymentID --config-overrides-file configOverrideFile --dry-run
输出会返回
targetState
,以便您预览更改。如需应用更改,请运行以下命令:
gcloud game servers deployments update-rollout deploymentID --config-overrides-file configOverrideFile --no-dry-run
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:IAM 设置中列出的 Google Cloud 项目 ID
- LOCATION:大区的区域(或
global
) - DEPLOYMENT_ID:用户定义的部署标识符
- REALM_ID:用户定义的大区标识符
- OVERRIDE_CONFIG_ID:用户定义的替换配置标识符
请求 JSON 正文:
{ "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID", "gameServerConfigOverrides": [ { "realmsSelector": { "realms": [ "projects/PROJECT_ID/locations/LOCATION/realms/REALM_ID" ] }, "configVersion": "OVERRIDE_CONFIG_ID" } ] }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 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", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
清除配置替换
清除替换配置,以从目标大区移除此部署的队列配置。
控制台
在 Google Cloud 控制台中,转到游戏服务器部署页面。
在表格中查找部署。在表格的最后一列中,点击省略号 more_vert 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。
点击管理发布。
在替换配置下,点击要清除的替换配置旁边的垃圾桶图标。
点击保存。
gcloud
如需使用 Google Cloud CLI 清除 Game Servers 部署的配置替换,请执行以下操作:
替换以下占位值后运行以下命令:
- deploymentID 是部署的唯一标识符。
gcloud game servers deployments update-rollout deploymentID --clear-config-overrides --dry-run
输出会返回
targetState
,以便您预览更改。如需应用更改,请运行以下命令:
gcloud game servers deployments update-rollout deploymentID --clear-config-overrides --no-dry-run
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:IAM 设置中列出的 Google Cloud 项目 ID
- DEPLOYMENT_ID:用户定义的部署标识符
请求 JSON 正文:
{ "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID", "gameServerConfigOverrides": [] }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 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", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
查看有关发布的详细信息
控制台
在 Google Cloud 控制台中,转到游戏服务器部署页面。
在表格中查找部署。在表格的最后一列中,点击省略号 more_vert 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。
点击管理发布。
gcloud
您可以使用 Google Cloud CLI 查看有关部署的详细信息,例如正在使用的配置:
如需查看发布的详细信息,请在替换以下占位值后运行以下命令:
- deploymentID 是父级部署的唯一标识符。
gcloud game servers deployments describe-rollout deploymentID
输出会显示发布的详细信息。
您还可以使用 Google Cloud CLI 查看发布后游戏服务器集群的状态:
gcloud game servers deployments fetch-state deploymentID
输出会显示每个游戏服务器集群上的发布所应用的更改。
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:IAM 设置中列出的 Google Cloud 项目 ID
- DEPLOYMENT_ID:用户定义的部署标识符
根据您发送的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/rollout", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "defaultGameServerConfig": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/CONFIG_ID", "gameServerConfigOverrides": [ { "realmsSelector": { "realms": [ "projects/PROJECT_ID/locations/LOCATION/realms/REALM_ID" ] }, "configVersion": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/OVERRIDE_CONFIG_ID" } ], "etag": "cN31kxa6fWHtaZWUnUZ7LfamUN7Ggz13DWS58Sc5jIQ" }
排查发布问题
本部分介绍了 Game Servers 可能无法更新游戏服务器集群的原因。一个常见原因可能是 Game Servers 或游戏服务器集群的配置错误。您可以参照以下核对清单来诊断遇到的潜在问题:
- 检查满足 Agones 集群的以下前提条件:
- 请查阅 Agones 问题排查指南。
- 检查 Game Servers 部署资源是否配置正确:
后续步骤
了解如何删除配置。