容器版本工作流程
警告:此内容是该文档的预览版。完整的文档以及代码示例仍在制作中。若有任何反馈,请通过本页底部的反馈机制来提供。
容器版本工作流程包括准备容器、获取(或创建)版本、创建版本文件列表、对版本文件进行迭代、创建版本的发布版本和等待版本进行同步。
在使用容器版本工作流程之前,必须具备 CCD API 密钥和具有以下角色的 UGS 服务帐户:
- Multiplay API 查看者
- Multiplay API 编辑者
- Multiplay 注册表编辑者
注意:在这整个工作流程中,您都需要使用您的 Unity Project ID 和环境 ID。您可以在项目设置页面上找到 Project ID 并在环境页面上找到环境 ID。
下图显示了该工作流程的简化版本:
准备版本容器
注意:构建游戏二进制文件和构建容器不属于 Multiplay Hosting API 的范围。
docker login registry.multiplay.com -u <KeyID>
获取或创建版本
获取版本的过程取决于您要使用现有版本还是创建新版本。
注意:版本 ID 和 CCD 存储桶 ID 是两个单独的 ID,两者具有一对一的关系。存储桶(由存储桶 ID 标识)存储版本文件,版本(由版本 ID 标识)中包含存储桶中的文件和元数据。
按名称获取现有版本
您可以使用列出版本 API 按名称获取现有版本 ID。
在版本列表 API 响应体中,每个版本的 ccd.bucketID
字段提供相应版本的 CCD 存储桶 ID,buildID
字段提供相应版本的版本 ID。请记录您要使用的版本的 buildID
字段值。
以下代码示例显示了如何使用 curl 获取现有版本:
curl -X GET -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" https://services.api.unity.com/multiplay/builds/v1/projects/{projectId}/environments/{environmentId}/builds
找到要使用的版本后,请记录下响应体中的 buildID
。
创建新版本
可以使用创建版本 API 来创建新版本。
以下代码示例展示了如何使用 curl 创建版本:
curl -X POST -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" -H "Content-Type: application/json" \
-d '{"buildName":"Dev Build A", "osFamily": "LINUX"}' \
https://services.api.unity.com/multiplay/builds/v1/projects/{projectId}/environments/{environmentId}/builds
创建新版本后,请记录下响应体中的 buildID
。
为容器镜像添加标签
首次推送给新版本时,请使用 v1
作为 MultiplayTag
。后续推送时,请使用增量标签(例如 v2
)。
使用以下代码片段作为模板为容器添加标签(其中 ImageName
和 ImageTag
是本地镜像名称和标签)。
docker tag <ImageName>:<ImageTag> registry.multiplay.com/<ProjectID>/<EnvironmentID>/<BuildID>:<MultiplayTag>
将镜像推送给容器注册表
为容器添加标签后,请将其推送给 Multiplay 容器注册表。使用以下代码片段作为模板:
docker push registry.multiplay.com/<ProjectID>/<EnvironmentID>/<BuildID>:<MultiplayTag>
创建版本的发布版本
可以使用创建新的发布版本 API 来创建版本的发布版本。
以下代码示例展示了如何使用 curl 创建版本的发布版本:
curl -X POST -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" -H "Content-Type: application/json" \
-d '{"container": {"imageTag": "v1"}, "forceRollout": false}' \
https://services.api.unity.com/multiplay/builds/v1/projects/{projectId}/environments/{environmentId}/builds/{buildId}/versions
等待版本进行同步
通过重试获取单个版本 API 直到 syncStatus
字段变为 SYNCED
,可确定版本何时完成同步。
以下代码示例展示了如何使用 curl 等待版本进行同步:
curl -X GET -H "Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS>" https://services.api.unity.com/multiplay/builds/v1/projects/{projectId}/environments/{environmentId}/builds/{buildId}