入门:5 - 上传测试项目

要将测试项目上传到 zeuz 编排服务,您要使用:

  • zeuz 控制面板 - 您先前已完成登录
  • zeuz 命令行工具 (CLI) - 您已从 SDK 下载中获得该工具

下列步骤说明了如何上传测试项目,共计 6 步:

  • 设置 API 密钥
  • 查找项目 ID 和环境 ID
  • 查找并准备 zeuz 命令行工具 CLI
  • 身份验证 (auth_login)
  • 上传 (push)
  • 容器化 (push_publish)
小贴士:使用文字编辑器来记录信息
  • 在下列步骤中,您将需要记录一些 ID 和 API 密钥。
  • 将这些信息复制粘贴至文字编辑器中,操作起来会更简便。

步骤 1: 设置 API 密钥

具体操作为:

  1. zeuz 控制面板 中,点击页面右上角的登录名 (或者三点标识,视具体页面而定),打开下拉菜单并点击 API Keys 前往相应页面。

图像:zeuz 控制面板的 API Keys 页面

  1. 在本页面上,点击 CREATE 前往 API Keys : Create 页面。

  2. 在本页面上,使用字母数字字符输入 API 密钥名称。具体实践中您可自由命名。

    • 针对本教程,请在 Title 中输入:Test project API key 1
  3. 在同一页面上,使用字母数字或特殊字符输入 API 密钥密码。 您可自由设定 API 密码,且该密码可不同于您的账号密码。

    • PasswordRepeat Password 字段中输入密码,然后点击 SAVE 保存。
      这会生成一个 40 个字符的 API 密钥哈希值。
  4. 记录 API 密钥哈希。
    您先前已从 zeuz SDK 下载中获得了 zeuz 工具,接下来您需要在其中用到 API 密钥及其密码。

问题排查

已有 API 密钥?为本测试项目创建新的 API 密钥

  • 如果这不是您首次设置 zeuz 项目,那么本页面中已有 API 密钥。
  • 您需要确保不重复使用现有项目的 API 密钥,并为本教程中的测试项目创建一个新的 API 密钥。

步骤 2:查找项目 ID 和环境 ID

具体操作为:

  1. 在 zeuz 控制面板左侧边栏,找到具有唯一性的 zeuz PROJECT IDENVIRONMENT ID
  2. 记录下这两个 ID,接下来会在 zeuz 工具中用到。

图像:zeuz 控制面板中显示的 PROJECT IDENVIRONMENT ID

步骤 3:查找并准备 zeuz 工具

  1. 在您的本地开发机中,通过终端窗口 (或文件资源管理器、Finder),在解压缩后的 zeuz SDK 下载中找到 zeuz 工具。文件路径和文件名如下所示:

    • Windowsbin/windows_amd64/zeuztool.exe
    • macOSbin/darwin_amd64/zeuztool
    • Linuxbin/linux_arm64/zeuztool or bin/linux_amd64/zeuztool

注意:您必须使用终端窗口来运行 zeuz 命令行工具。

小贴士:简化文件路径
将 zeuz 工具文件以及 get_started_test_project 目录及其内容整体移动至相同的父目录中 (请参阅下方指南)。
资讯:移动 zeuz 工具文件和 get_started_test_project 目录

为使文件路径更简单,您可以将 zeuz 工具文件 (zeuztool.exezeuztool) 以及 get_started_test_project 目录及其内容整体移动至相同的父目录中。

如果 zeuz 工具文件和 get_started_test_project 目录位于相同的父目录中,那么您在稍后步骤中运行 zeuz 工具时,无需思考 zeuz 工具和游戏镜像的文件路径问题。

目录结构应类似于:

~/parent-directory/zeuztool.exe or ~/my-directory/zeuztool
~/parent-directory/get_started_test_project/
~/parent-directory/get_started_test_project/favico.ico
~/parent-directory/get_started_test_project/index.html
~/parent-directory/get_started_test_project/server.sh

父目录 (本例中为 parent-directory) 可由您自由命名。除目录外,请勿重新命名任何文件或 get_started_test_project 目录。



2. 如果您正在使用 macOS 或 Linux,确保 zeuz 工具是可执行文件。 (如果您使用的是 Windows 系统,可跳过此步。)

资讯:如何确保这是可执行文件?
  • Windows:zeuz 工具是可执行文件,无需其他操作。

  • macOS:参见 support.apple.com

  • Linux:在终端窗口中,输入 sudo chmod +x /path/to/zeuztool (请将 path/to 替换为正确的文件路径)。


问题排查

(仅限 macOS) 我的电脑无法确认开发者的身份

步骤 4:身份认证

使用 zeuz 命令行工具来验证身份,具体操作为:

打开终端窗口,从 zeuz tool 所在的目录里使用 API 密钥及其密码来运行 auth_login 命令 (如下所示)。确保您按照_身份认证登录命令使用指南_ 操作。

  • Windows
    zeuztool.exe auth_login login="your API key" password="your API key password" isapi=true endpoint="https://zcp.zeuz.io/api/v1"

  • macOS 和 Linux
    ./zeuztool auth_login login="your API key" password="your API key password" isapi=true endpoint="https://zcp.zeuz.io/api/v1"

身份认证登录命令使用指南
请将 your API keyyour API key password 替换为您自己的 API 密钥及其密码。

问题排查

返回 400 错误

  • 您可能使用了定向 (弯曲) 引号,请将定向引号替换为非定向 (直) 引号,即 ( " ) (ASCII 34)。
  • 您的 API 密码中可能包含特殊字符 (非字母数字的字符),请在所有特殊字符前添加转义字符 ( \ ) (反斜杠)。

(仅限 macOS) 我的电脑无法确认开发者的身份


完成
当终端窗口中出现类似下列示例的输出时 (其中 `xxxhashxxx` 为哈希字符串),代表运行成功。示例如下:

Zeuz Tool development version login: https://zcp.zeuz.io/api/x xxxhashxxx

Login Session: xxxhashxxx

Load LocalConfig: /Users/yourusername/Library/ApplicationSupport/zeuz.io/zeuzcmd.json

步骤 5:上传游戏程序集

使用 zeuz 工具运行 push 命令 (如下所示) 来上传测试项目的游戏程序集。

游戏程序集即为 get_started_test_project 目录,其中包含测试项目的 server.sh 可执行文件和两个客户端相关的文件,您将把它们一并上传到游戏服务器。具体操作为:

在终端窗口中,从 zeuz 工具所在的目录里运行下列命令,确保按照_Push 命令使用指南_ 和_Push 命令备注_ 完成操作。

  • Windows
    zeuztool.exe push proj="your zeuz PROJECT ID" env="your zeuz ENVIRONMENT ID" directory="path/to/get_started_test_project"

  • macOS 和 Linux
    ./zeuztool push proj="your zeuz PROJECT ID hash" env="your zeuz ENVIRONMENT ID hash" directory="path/to/get_started_test_project"

Push 命令使用指南

  • 请将 your zeuz PROJECT IDyour zeuz ENVIRONMENT ID 替换为 zeuz 控制面板左侧的项目 ID 和环境 ID。
  • 请将 path/to/get_started_test_project 替换为从 zeuz 工具所在的目录到 get_started_test_project 的相对路径,并保留两侧的双引号 (")。
  • 在该命令中必须使用非定向 (直) 引号 ( " ) (ASCII 34),请勿使用定向 (弯曲) 双引号。

Push 命令备注

  • 上传过程需要一定时间,具体时长取决于您的网络访问速度。
  • zeuz 工具可能会输出一些文本,将每个文件的哈希值与已上传文件的文件哈希数据库进行比较,然后上传数据库中尚不存在的文件。
问题排查

返回错误?

  • 请确保您指定的是 get_started_test_project 目录,而不是其中的可执行文件 server.sh
  • 如果您重新命名了 get_started_test_project 目录且新名称中包含空格,请用非定向 (直) 引号 ( " ) (ASCII 34) 将名称括起来。例如:"test project"
  • 请确保命令尾部没有多余空格 (空格或回车空行)。

完成
当终端窗口中出现类似下列示例的输出时 (其中 `xxxhashxxx` 为哈希字符串),代表运行成功。示例如下:

Finished uploading server.sh (xxxhashxxx)

Finished uploading index.html(xxxhashxxx)

Finished uploading favicon.ico (xxxhashxxx)

警告:在看到 `Finished uploading` 消息之前请勿执行下一步操作
  • 在终端窗口返回三条 Finished uploading <name of file> 信息且 zeuz 停止输出文本前,请勿继续执行下一步操作。
  • 上传可能需要一点时间,具体取决于您的互联网连接速度。在上传过程中,zeuz 可能会输出一些文本。

步骤 6:容器化游戏程序集

使用 zeuz 工具对您在上一步上传的游戏程序集进行容器化。

运行 push_publish 命令 (如下所示)。zeuz 编排服务使用您的游戏程序集创建的容器化游戏镜像实例,即您游戏的负载。

在终端窗口中,从 zeuz 工具所在的目录里运行下列命令:

  • Windows
    zeuztool.exe push_publish description="zeuz test project" version="0.0.1"

  • macOS 和 Linux
    ./zeuztool push_publish description="zeuz test project" version="0.0.1"

本教程中的项目描述为 “zeuz test project”,镜像版本为 “0.0.1”。您稍后在本教程中会用到该描述和版本,实际操作中您可以为描述输入任何字母数字字符,为版本输入任何数字。

Push_publish 命令备注

  • 具体时长取决于游戏的大小。
  • 当您看到终端窗口输出类似示例的字符串时,代表运行成功:YYYY/MM/DD HH:MM:SS State: running
小贴士
您无需重复输入前面步骤中的 projenv ID。zeuz 命令行工具会在您的后续命令中自动添加它们。
问题排查
返回错误? 确保命令尾部没有多余空格。

完成
当终端窗口中出现类似下列示例的输出时 (其中 `xxxhashxxx` 为哈希字符串),代表运行成功。示例如下:

YYYY/MM/DD HH:MM:SS Image published: xxxhashxxx

资讯:关于负载和容器化游戏镜像的更多信息

容器化的游戏镜像包含下列内容:

  • 您的游戏程序集 (游戏服务器端的可执行文件及其依赖项),其实例在 zeuz 启动裸机或云服务器时成为游戏服务器。
  • 描述如何运行的命令。

当您设置 zeuz 编排时,可在“负载定义”部分指定容器化的游戏镜像。负载定义是 zeuz 用于启动游戏服务器实例的模板,所以游戏服务器实例是负载实例的一部分。

在 zeuz 中,“游戏服务器”和“负载”这两个术语在文档中经常互换使用,均意为“运行游戏的服务器软件”。

更多信息参见:



下一步:6 - 创建配载


2021年6月30日 该文档已更新并通过审校:更新 zeuz 控制面板的 URL 2021年5月19日 该文档已更新并通过审校:阐明 zeuz 术语 2021年4月16日 该文档已更新并通过审校:热更链接


最近更新时间: October 21, 2021 (59e0897e)