CloudBase CLI
CLI 0.x 版本将被废弃,文档停止更新,请移步 v1 版本 文档
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、自动弹性扩缩的后端云服务,包含计算、存储、托管等 serverless 化能力,可用于云端一体化开发多种端应用(小程序,公众号,Web 应用,Flutter 客户端等),帮助开发者统一构建和管理后端服务和云资源,避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
CloudBase CLI 是云开发(Tencent CloudBase,TCB)开源的命令行界面交互工具,用于帮助用户快速、方便的部署项目,管理云开发资源。
安装
1. 安装 Node.js
如果本机没有安装 Node.js,请从 Node.js 官网下载二进制文件直接安装,建议选择 LTS 版本,版本必须为 8.6.0+。
2. 安装 CLI
使用 NPM
npm i -g @cloudbase/cli
或使用 Yarn
yarn global add @cloudbase/cli
如果 npm install -g @cloudbase/cli
失败,您可能需要修改 npm 权限,或者以系统管理员身份运行:
sudo npm install -g @cloudbase/cli
3. 测试安装是否成功
如果安装过程没有错误提示,一般就是安装成功了。下面,我们可以继续输入命令:
cloudbase -v
如果看到输出版本号,说明已经安装成功。
4. 再多了解 1 个命令
为了简化输入,cloudbase 命令可以简写成 tcb。tcb 是云开发产品英文的简称:Tencent Cloud Base。尝试到命令行终端输入:
tcb -h
就可以看到目前 CLI 支持的所有能力和命令了。建议可以经常使用 -h 来查看命令。
代理设置
使用 CloudBase CLI 时,需要您的终端能够访问网络。如果您的终端无法直接访问公网,您可以设置 HTTP 代理使 CLI 能够正常使用,CLI 会读取 http_proxy
或 HTTP_PROXY
环境变量,自动设置网络代理服务。
例如,您可以在终端中运行以下命令,设置 CLI 通过 http://127.0.0.1:8000
的代理服务访问网络:
export HTTP_PROXY=http://127.0.0.1:8000
上面的命令只是临时设置,当您关闭终端后,代理会自动失效,下次开启终端后需要重新设置。如果您需要一直通过代理访问公网,可以把命令加入到终端的配置文件中。
开通云开发服务
在所有开始之前,您需要登录 腾讯云云开发控制台,确保已经开通了云开发服务,并且已经创建了可以使用的环境。如果您不了解怎么创建环境,可以根据此文档指导进行操作。
登录
您需要先登录您的腾讯云账号,在获取到您的授权之后,Cloudbase CLI 才能操作您的资源。Cloudbase CLI 提供了两种获取授权的方式:腾讯云-云开发控制台授权以及腾讯云-云 API 密钥授权。
腾讯云-云开发控制台授权
在您的终端中输入下面的命令
tcb login
CloudBase CLI 会自动打开云开发控制台获取授权,您需要点击同意授权按钮允许 CloudBase CLI 获取授权。如您没有登录,您需要登录后才能进行此操作。
腾讯云-云 API 密钥授权
注意:腾讯云 API 密钥可以操作您名下的所有腾讯云资源,请妥善保存和定期更换密钥,当您更换密钥后,请及时删除旧密钥。
首先您需要到腾讯云官网获取云 API 密钥,然后在终端中输入下面的命令:
tcb login --key
回车后,请按提示输入云 API 密钥的 SecretId 和 SecretKey 既可完成登录。
CI 中的登录
在 CI(持续集成)构建中,您可以使用下面的方式通过 API 秘钥直接登录,避免交互式输入
tcb login --apiKeyId xxx --apiKey xxx
临时秘钥登录
通过腾讯云临时秘钥登录,可以在某些比较敏感的场景下使用,使用短期有效的秘钥
tcb login --apiKeyId xxx --apiKey xxx --token xxx
创建项目与部署
1. 初始化
您可以使用下面的命令创建一个项目,创建项目时 CloudBase CLI 根据您输入的项目名创建一个文件夹,并写入相关的配置和模板文件。
tcb init
云开发项目是和云开发环境资源关联的实体,云开发项目聚合了云函数、数据库、文件存储等服务,您可以在云开发项目中编写函数,存储文件,并通过 cloudbase cli
快速的操作您的云函数、文件存储、数据库等资源。
云开发项目文件结构:
.
├── .gitignore
├── functions // 云函数目录
│ └── app
│ └── index.js
└── cloudbaserc.js // 项目配置文件
2. 编写函数
默认情况下,所有 Node.js 和 PHP 函数都统一存放在 functions
目录下,并以函数名作为文件夹名称,如 functions/cloudbase/index.js
。对于 Java 函数时,则需要将 jar 文件名修改为函数名称,放在 functions
目录下即可,如 functions/cloudbase.jar
。
如果您想将函数存放在其他目录,您可以通过配置文件中的 functionRoot
选项指定您想存放函数的目录,functionRoot
选项代表了云函数文件夹相对于项目根目录的路径。
例如,创建一个 Node.js 函数 app,下面是 functions/app/index.js
的内容
"use strict";
exports.main = async (event, context) => {
console.log("Hello World");
console.log(event);
console.log(context);
};
3. 修改配置
默认情况下,项目配置存储在 cloudbaserc.js
文件中,默认生成的函数配置为 Node.js 语言相关的配置,其他语言如 PHP,Java 等需要修改对应的 handler(运行入口) 和 runtime(运行时)
,参考 cloudbaserc.json 文件说明部分。
如果您想指定其他文件作为配置文件,可以在使用 CLI 命令时添加 --config-file config-path
参数指定配置文件,目前支持 JS 和 JSON 格式的配置文件。
{
"envId": "xxx",
"functionRoot": "functions",
"functions": [
{
"name": "app",
"timeout": 5,
"envVariables": {},
"runtime": "Nodejs10.15",
"handler": "index.main"
}
]
}
4. 部署函数
最后,在项目根目录下(cloudbaserc.json 所在目录)运行 cloudbase functions:deploy
命令,即可部署 app 函数
tcb functions:deploy app
部署完成后可以使用 tcb functions:list
命令查看已经部署完成的函数列表
tcb functions:list
所有命令
使用 cloudbase -h
查看所有可用命令
tcb -h