创建部署
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
本页面介绍了如何创建、列出、介绍和更新 Game Servers 部署。部署管理您可以部署到任何或所有大区的一个或多个软件版本。如需查看创建部署,添加配置然后发布部署的端到端示例,请参阅配置集群扩缩行为。
准备工作
开始之前,我们建议您先了解 Game Servers 概览中的关键概念。请确保您已执行以下任务:
- 确保您已启用 Game Services API。
启用 Game Services API
- 选择已安装 gcloud CLI 的 shell,或者使用 API 客户端:
Cloud Shell
如需启动 Cloud Shell,请执行以下步骤:
进入 Google Cloud 控制台。
Google Cloud 控制台
在控制台的右上角,点击激活 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 搭配使用,请执行以下操作:
- 创建服务帐号。
- 以 JSON 文件的格式下载私钥。
-
将环境变量 GOOGLE_APPLICATION_CREDENTIALS
设置为包含凭据的 JSON 文件的路径。
此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。
示例:Linux 或 macOS
export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
将 KEY_PATH
替换为包含凭据的 JSON 文件的路径。
例如:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
示例:Windows
对于 PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
将 KEY_PATH
替换为包含凭据的 JSON 文件的路径。
例如:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
对于命令提示符:
set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH
将 KEY_PATH
替换为包含凭据的 JSON 文件的路径。
客户端库
您可以使用客户端库以编程方式控制 Google Cloud Game Servers。如需了解库和身份验证的使用说明,请参阅客户端库概览。
创建部署
控制台
在 Google Cloud 控制台中,转到游戏服务器部署页面。
转到 Game Servers
点击创建部署。
在名称框中,输入此部署的唯一标识符。
(可选)在说明框中,输入此部署的说明。
点击创建。
gcloud
您可以使用 Google Cloud CLI 创建部署。
如需创建部署,请运行以下命令并将 deploymentID 替换为适当的值:
gcloud game servers deployments create deploymentID
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:IAM 设置中列出的 Google Cloud 项目 ID
- DEPLOYMENT_ID:用户定义的部署标识符
请求 JSON 正文:
{
"name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
}
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
cat > request.json << 'EOF'
{
"name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
}
EOF
然后,执行以下命令以发送 REST 请求:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://gameservices.googleapis.com/v1/projects/PROJECT_ID/locations/global/gameServerDeployments?deploymentId=DEPLOYMENT_ID"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
@'
{
"name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
}
'@ | Out-File -FilePath request.json -Encoding utf8
然后,执行以下命令以发送 REST 请求:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://gameservices.googleapis.com/v1/projects/PROJECT_ID/locations/global/gameServerDeployments?deploymentId=DEPLOYMENT_ID" | Select-Object -Expand Content
您应该收到类似以下内容的 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": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
列出部署
控制台
在 Google Cloud 控制台中,转到游戏服务器部署页面。
转到 Game Servers
您可以使用过滤条件框,按不同属性过滤部署列表。
gcloud
您可以使用 Google Cloud CLI 列出部署。
如需列出部署,请运行以下命令:
gcloud game servers deployments list
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:IAM 设置中列出的 Google Cloud 项目 ID
根据您发送的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://gameservices.googleapis.com/v1/projects/PROJECT_ID/locations/global/gameServerDeployments"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://gameservices.googleapis.com/v1/projects/PROJECT_ID/locations/global/gameServerDeployments" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"gameServerDeployments": [
{
"name": "projects/PROJECT_ID/locations/global/gameServerDeployments/my-deployment-1",
"createTime": CREATE_TIME,
"updateTime": UPDATE_TIME,
"etag": "RI8hTm3ZaMNZ3qRVeKVcxcN3W26_oR559JYofnFi69A"
},
{
"name": "projects/PROJECT_ID/locations/global/gameServerDeployments/my-deployment-2",
"createTime": CREATE_TIME,
"updateTime": UPDATE_TIME,
"etag": "az38kwIY4X3WdP2SA0fkTGib9hwVj7iXLFXAtIzMLpc"
}
]
}
描述部署
控制台
在 Google Cloud 控制台中,转到游戏服务器部署页面。
转到 Game Servers
您可以使用过滤条件框,按不同属性过滤部署列表。
在表格的最后一列中,点击省略号 more_vert 并选择列出配置。您可以通过此页面查看部署的活跃配置和无效配置。
要为部署创建新配置,请点击创建配置。如需更新发布,请点击管理发布。
gcloud
您可以使用 Google Cloud CLI 获取有关部署的详细信息,例如创建时间或更新时间。
如需描述部署,请运行以下命令,并将 deploymentID 替换为您之前创建的部署的标识符:
gcloud game servers deployments describe deploymentID
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:IAM 设置中列出的 Google Cloud 项目 ID
- DEPLOYMENT_ID:用户定义的部署标识符
根据您发送的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://gameservices.googleapis.com/v1/projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://gameservices.googleapis.com/v1/projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID",
"createTime": CREATE_TIME,
"updateTime": UPDATE_TIME,
"etag": "RI8hTm3ZaMNZ3qRVeKVcxcN3W26_oR559JYofnFi69A"
}
更新部署
gcloud
如需更新部署的字段,请在替换现有部署的 deploymentID 后运行 gcloud game servers
deployments update
命令。以下命令会更新部署的说明字段。
gcloud game servers deployments update deploymentID --description="My updated description"
如需查找其他部署字段的标志,请参阅 gcloud
参考。
REST
以下示例更新 description
字段。如要更新其他字段,请将字段名称添加到 ?updateMask=
查询参数并请求 JSON 正文。
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:IAM 设置中列出的 Google Cloud 项目 ID
- DEPLOYMENT_ID:用户定义的部署标识符
请求 JSON 正文:
{
"description": "My updated description"
}
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
cat > request.json << 'EOF'
{
"description": "My updated description"
}
EOF
然后,执行以下命令以发送 REST 请求:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://gameservices.googleapis.com/v1/projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID?updateMask=description"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
@'
{
"description": "My updated description"
}
'@ | Out-File -FilePath request.json -Encoding utf8
然后,执行以下命令以发送 REST 请求:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://gameservices.googleapis.com/v1/projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID?updateMask=description" | Select-Object -Expand Content
您应该收到类似以下内容的 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
}
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-03-15。
[{
"type": "thumb-down",
"id": "hardToUnderstand",
"label":"Hard to understand"
},{
"type": "thumb-down",
"id": "incorrectInformationOrSampleCode",
"label":"Incorrect information or sample code"
},{
"type": "thumb-down",
"id": "missingTheInformationSamplesINeed",
"label":"Missing the information/samples I need"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]