WARNING
# 当前文档已迁移到新的文档站点 (opens new window),此内容不再维护!
# CloudBase CLI (opens new window)
云开发是腾讯云为移动开发者提供的一站式后端云服务,可用于开发多种客户端,它帮助开发者统一构建和管理资源,免去了应用开发过程中繁琐的服务器搭建及运维、域名注册及备案、数据接口实现等繁琐流程,让开发者可以专注于业务逻辑的实现,而无需理解后端逻辑及服务器运维知识,开发门槛更低,效率更高。
CloudBase CLI 是一个开源的命令行界面交互工具,用于帮助用户快速、方便的部署项目,管理云开发资源。
# 安装 CloudBase CLI
# 使用 NPM 或 Yarn - 适用于了解 Node (opens new window) 的开发人员
# Node 版本要求
Node.js 8.6.0+
# npm
npm install -g @cloudbase/cli
由于 NPM 的源在国外,部分用户可能下载速度较慢,你可以使用下面的命令更换 NPM 源,加快 NPM 包下载速度
npm config set registry https://r.cnpmjs.org/
# yarn
yarn global add @cloudbase/cli
安装完成后,你可以使用 cloudbase -v
验证是否安装成功,如果输出了类似下面的版本号,则表明 CloudBase CLI 被成功安装到您的计算机中。
0.5.0
# 二进制包(beta) - 适用于普通的开发人员
请到 GitHub Release (opens new window) 下载最新的适用于您的操作系统的二进制文件。
Cloudbase CLI 二进制文件无需安装,可直接在终端中运行
# 输出帮助信息
./cloudbase -h
./cloudbase.exe -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
上面的命令只是临时设置,当你关闭终端后,代理会自动失效,下次开启终端后需要重新设置。如果你需要一直通过代理访问公网,可以把命令加入到终端的配置文件中。
# 开通云开发服务
在所有开始之前,你需要登录 腾讯云云开发控制台 (opens new window),确保已经开通了云开发服务,并且已经创建了可以使用的环境。如果您不了解怎么创建环境,可以根据此文档指导 (opens new window)进行操作。
# 登录
您需要先登录您的腾讯云账号,在获取到您的授权之后,Cloudbase CLI 才能操作您的资源。Cloudbase CLI 提供了两种获取授权的方式:腾讯云-云开发控制台授权和腾讯云-云 API 密钥授权。
# 腾讯云-云开发控制台授权
在您的终端中输入下面的命令
cloudbase login
CloudBase CLI 会自动打开云开发控制台获取授权,您需要点击同意授权按钮允许 CloudBase CLI 获取授权。如您没有登录,您需要登录后才能进行此操作。
# 腾讯云-云 API 密钥授权
注意:腾讯云 API 密钥可以操作您名下的所有腾讯云资源,请妥善保存和定期更换密钥,当您更换密钥后,请及时删除旧密钥。
首先您需要到腾讯云官网获取云 API 密钥 (opens new window),然后在终端中输入下面的命令:
cloudbase login --key
回车后,请按提示输入云 API 密钥的 SecretId 和 SecretKey 既可完成登录。
# 登出
如果你需要切换其他账号,可以使用 cloudbase logout
退出登陆。
# 创建项目与部署
# 1. 初始化
您可以使用下面的命令创建一个项目,创建项目时 CloudBase CLI 根据您输入的项目名创建一个文件夹,并写入相关的配置和模板文件。
cloudbase init
# 2. 编写函数
默认情况下,所有 Node 和 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 = (event, context, callback) => {
console.log('Hello World');
console.log(event);
console.log(context);
callback(null, event);
};
# 3. 修改配置
默认情况下,项目配置存储在 cloudbaserc.json
文件中,默认生成的函数配置为 Node 语言相关的配置,其他语言如 PHP,Java 等需要修改对应的 handler(运行入口) 和 runtime(运行时)
,参考 cloudbaserc.json 文件说明部分。
如果你想指定其他文件作为配置文件,可以在使用 CLI 命令时添加 --config-file $configPath
参数指定配置文件,目前支持 JS 和 JSON 格式的配置文件。
{
"envId": "xxx",
"functionRoot": "functions",
"functions": [
{
"name": "app",
"config": {
"timeout": 5,
"envVariables": {},
"runtime": "Nodejs8.9"
},
"handler": "index.main"
}
]
}
# 4. 部署函数
最后,在项目根目录下(cloudbaserc.json 所在目录)运行 cloudbase functions:deploy
命令,即可部署 app 函数
cloudbase functions:deploy app
# 使用说明
在介绍文档中,默认省略了环境 Id,您可以使用 -e
参数指定环境 Id,或者在 .cloudbaserc.json
文件所在目录使用 CloudBase CLI 命令。
# 关于云开发项目
云开发项目是和云开发环境资源关联的实体,云开发项目聚合了云函数、数据库、文件存储等服务,您可以在云开发项目中编写函数,存储文件,并通过 CloudBase CLI 工具 快速的操作您的云函数、文件存储、数据库等资源。
云开发项目文件结构:
.
├── _gitignore
├── functions // 云函数目录
│ └── app
│ └── index.js
└── cloudbaserc.json // 项目配置文件
# 所有命令
使用 cloudbase -h
查看所有可用命令
cloudbase -h
Usage: cloudbase [options] [command]
Options:
--config-file <path> 设置配置文件,默认为 ./cloudbaserc.js 或 .cloudbaserc.json
-V, --version 输出当前 CloudBase CLI 版本
-h, --help 输出帮助信息
Commands:
init [options] 创建并初始化一个新的项目
login [options] 登录腾讯云账号
logout 登出腾讯云账号
env:list 展示云开发环境信息
env:create <alias> 创建新的云开发环境
env:rename [options] <name> 修改云开发环境别名
env:login:list [options] 列出环境登录配置
env:login:create [options] 创建环境登录配置
env:login:update [options] 更新环境登录方式配置
env:domain:list [options] 列出环境的安全域名列表
env:domain:create [options] <domain> 添加环境安全域名,多个以斜杠 / 分隔
env:domain:delete [options] 删除环境的安全域名
functions:list [options] 展示云函数列表
functions:download [options] <functionName> [dest] 下载云函数代码
functions:deploy [options] [functionName] 部署云函数
functions:delete [options] [functionName] 删除云函数
functions:detail [options] [functionName] 获取云函数信息
functions:code:update [options] <functionName> 更新云函数代码
functions:config:update [options] [functionName] 更新云函数配置
functions:copy [options] <functionName> <newFunctionName> 拷贝云函数
functions:log [options] <functionName> 打印云函数日志
functions:trigger:create [options] [functionName] 创建云函数触发器
functions:trigger:delete [options] [functionName] [triggerName] 删除云函数触发器
functions:invoke [options] [functionName] 触发云端部署的云函数
functions:run [options] 本地运行云函数(当前仅支持 Node)
storage:upload [options] <localPath> [cloudPath] 上传文件/文件夹
storage:download [options] <cloudPath> <localPath> 下载文件/文件夹,文件夹需指定 --dir 选项
storage:delete [options] <cloudPath> 删除文件/文件夹,文件夹需指定 --dir 选项
storage:list [options] [cloudPath] 获取文件存储的文件列表
storage:url [options] <cloudPath> 获取文件临时访问地址
storage:detail [options] <cloudPath> 获取文件信息
storage:get-acl [options] 获取文件存储权限信息
storage:set-acl [options] 设置文件存储权限信息
hosting:detail [options] 查看静态网站服务信息
hosting:deploy [options] [filePath] [cloudPath] 部署静态网站文件
hosting:delete [options] [cloudPath] 删除静态网站文件/文件夹,文件夹需指定 --dir 选项
hosting:list [options] 展示文件列表
server:deploy [name] 部署 node 服务
server:log [options] <name> 查看日志
server:reload <name> 重启 node 服务
server:stop <name> 停止应用
server:show 查看状态
open [link] 在浏览器中打开云开发相关连接
service:create [options] 创建 HTTP Service
service:delete [options] 删除 HTTP Service
service:list [options] 查询 HTTP Service
service:domain:bind [options] <domain> 绑定 HTTP Service 域名
service:domain:unbind [options] <domain> 解绑 HTTP Service 域名
service:domain:list [options] 查询 HTTP Service 域名
Tips:
– 登录
$ cloudbase login
– 初始化云开发项目
$ cloudbase init
– 部署云函数
$ cloudbase functions:deploy
– 查看命令使用介绍
$ cloudbase functions:log -h
# 编程式使用
CloudBase CLI 支持作为单独的 Node 模块使用
const CloudBase = require('@cloudbase/cli');
// 如果已使用 cloudbase login 登录过,可以不传入 secretId、secretKey 值
const cloudbase = new CloudBase(secretId, secretKey);
// 列出云开发所有环境
cloudbase.env
.list()
.then(function(data) {
console.log(data);
})
.catch(function(err) {});
编程式 API 接口详情:API 接口 (opens new window)
CLI 配置文件 →