_ ______ _ _
| | / _____) | | |
| | ____ ____ ____ | / | | ___ _ _ _ | |
| | / _ ) _ | _ \| | | |/ _ \| | | |/ || |
| |____( (/ ( ( | | | | | \_____| | |_| | |_| ( (_| |
|_______)____)_||_|_| |_|\______)_|\___/ \____|\____|
NAME:
lean - Command line to manage and deploy LeanCloud apps
USAGE:
lean [global options] command [command options] [arguments...]
VERSION:
0.21.0
COMMANDS:
login Log in to LeanCloud
metric Obtain LeanStorage performance metrics of current project
info Show information about the current user and app
up Start a development instance locally
init Initialize a LeanEngine project
switch Change the associated LeanCloud app
deploy Deploy the project to LeanEngine
publish Publish code from staging to production
upload Upload files to the current application (available in the '_File' class)
logs Show LeanEngine logs
debug Start the debug console without running the project
env Output environment variables used by the current project
cache LeanCache shell
cql Start CQL interactive mode
help, h Show all commands or help info for one command
GLOBAL OPTIONS:
--version, -v print the version
简单介绍下主要的子命令:
命令
用途
login
登录 LeanCloud 账号
metric
当前项目的 LeanStorage 统计信息
info
当前用户、应用
up
启动本地开发调试实例
init
初始化云引擎项目
switch
切换关联的云引擎项目
deploy
部署项目至云引擎
publish
部署至生产环境
upload
上传文件至当前应用(可以在 _File 类中查看)
logs
显示云引擎日志
debug
单独运行云函数调试功能,而不在本地运行项目本身
env
显示当前项目的环境变量
cache
LeanCache 命令行
可以通过 --version 选项查看版本:
$ lean --version
lean version 0.21.0
lean command -h 可以查看子命令的帮助信息,例如:
NAME:
lean login - Log in to LeanCloud
USAGE:
lean login [command options] [-u username -p password (--region <CN> | <US> | <TAB>)]
OPTIONS:
--username value, -u value Username
--password value, -p value Password
--region value, -r value The LeanCloud region to log in to (e.g., US, CN)
$ lean metric --from 2017-09-07
[INFO] Retrieving xxxxxx storage report
Date 2017-09-07 2017-09-08 2017-09-09
API Requests 49 35 14
Max Concurrent 2 2 2
Mean Concurrent 1 1 1
Exceed Time 0 0 0
Max QPS 5 5 5
Mean Duration Time 9ms 21ms 7ms
80% Duration Time 15ms 22ms 9ms
95% Duration Time 26ms 110ms 25ms
相关状态的描述如下:
状态
描述
Date
日期
API Requests
API 请求次数
Max Concurrent
最大工作线程数
Mean Concurrent
平均工作线程数
Exceed Time
超限请求数
Max QPS
最大 QPS
Mean Duration Time
平均响应时间
80% Duration Time
80% 响应时间
95% Duration Time
95% 响应时间
metric 接收参数与 logs 类似,具体介绍如下:
$ lean metric -h
NAME:
lean metric - Obtain LeanStorage performance metrics of current project
USAGE:
lean metric [command options] [--from fromTime --to toTime --format default|json]
OPTIONS:
--from value Start date, formatted as YYYY-MM-DD,e.g., 1926-08-17
--to value End date formated as YYYY-MM-DD,e.g., 1926-08-17
--format value Output format,'default' or 'json'
多应用管理
一个项目的代码可以同时部署到多个 LeanCloud 应用上。
查看当前应用状态
使用 lean info 可以查看当前项目关联的应用:
$ lean info
[INFO] Retrieving user info from region: cn
[INFO] Retrieving app info ...
[INFO] Current region: cn User: lan (lan@leancloud.rocks)
[INFO] Current region: cn App: AwesomeApp (xxxxxx)
[INFO] Current group: web
命令行工具 CLI 使用指南
命令行工具是用来管理和部署云引擎项目的工具。它不仅可以部署、发布和回滚云引擎代码,对同一个云引擎项目做多应用管理,还能查看云引擎日志,批量将文件上传到 LeanCloud 云端。
安装命令行工具
macOS
使用 Homebrew 进行安装:
如果之前使用
npm
安装过旧版本的命令行工具,为了避免与新版本产生冲突,建议使用npm uninstall -g leancloud-cli
卸载旧版本命令行工具。或者直接按照homebrew
的提示,执行brew link --overwrite lean-cli
覆盖掉之前的lean
命令来解决。如果通过 Homebrew 安装遇到问题,可以参考这个 FAQ。
Windows
Windows 用户可以在 GitHub releases 页面 根据操作系统版本下载最新的 32 位 或 64 位 msi 安装包进行安装,安装成功之后在 Windows 命令提示符(或 PowerShell)下直接输入
lean
命令即可使用。也可以选择编译好的绿色版 exe 文件,下载后将此文件更名为
lean.exe
,并将其路径加入到系统 PATH 环境变量(设置方法)中去。这样使用时在 Windows 命令提示符(或 PowerShell)下,在任意目录下输入lean
就可以使用命令行工具了。当然也可以将此文件直接放到已经在 PATH 环境变量中声明的任意目录中去,比如C:\Windows\System32
中。Linux
基于 Debian 的发行版可以从 GitHub releases 页面 下载 deb 包安装。
其他发行版可以从 GitHub releases 页面 下载预编译好的二进制文件
lean-linux-x64
,赋予可执行权限(chmod a+x lean-linux-x64
),重命名为lean
并放到已经在 PATH 环境变量中声明的任意目录中即可。如果你使用 Linux 版的 Homebrew,同样可以通过 Homebrew 安装:
Arch Linux
Arch Linux 用户,可以考虑使用此 AUR 进行安装: https://aur.archlinux.org/packages/lean-cli-git/ 。
通过源码安装
请参考项目源码 README。
升级
如果命令行工具是通过 Homebrew 安装的,那么升级它需要运行:
使用其他方式进行安装的,则可以直接按照安装文档描述,下载最新的文件,重新执行一遍安装流程,即可把旧版本的命令行工具覆盖,升级到最新版。
使用
安装成功之后,直接在 terminal 终端运行
lean help
,输出帮助信息:简单介绍下主要的子命令:
login
metric
info
up
init
switch
deploy
publish
upload
_File
类中查看)logs
debug
env
cache
可以通过
--version
选项查看版本:lean command -h
可以查看子命令的帮助信息,例如:下文中凡是以
$ lean
开头的文字即表示在终端里执行命令。登录
安装完命令行工具之后,首先第一步需要登录 LeanCloud 账户。
然后按照提示选择区域并输入 LeanCloud 用户名和密码完成登录。
如果同时使用多个区域,那么可以多次运行
lean login
,每次选择不同的区域,并使用相应的用户名、密码登录。切换账户
要切换到另一账户,重新执行
lean login
即可。初始化项目
登录完成之后,可以使用
init
命令来初始化一个项目,并且关联到已有的 LeanCloud 应用上。选择项目语言/框架:
之后命令行工具会将此项目模版下载到本地,这样初始化就完成了:
进入以应用名命名的目录就可以看到新建立的项目。
关联已有项目
如果已经使用其他方法创建好了项目,可以直接在项目目录执行:
将已有项目关联到 LeanCloud 应用上。
切换分组
如果应用启用了云引擎多分组功能,同样可以使用
$ lean switch
命令切换当前目录关联的分组。本地运行
如果想将一份代码简单地部署到服务器而不在本地运行和调试,可以暂时跳过此章节。
进入项目目录:
之后需要安装此项目相关的依赖,需要根据项目语言来查看不同文档:
启动应用:
lean up --port 新端口号
命令来指定。-h
参数来查看详细的参数说明信息,比如lean up -h
。旧版命令行工具可以在
$ lean up
的过程中,监测项目文件的变更,实现自动重启开发服务进程。新版命令行工具移除了这一功能,转由项目代码本身来实现,以便更好地与项目使用的编程语言或框架集成。除了使用命令行工具来启动项目之外,还可以原生地启动项目,比如直接使用
node server.js
或者python wsgi.py
。这样能够将云引擎开发流程更好地集成到开发者管用的工作流程中,也可以直接和 IDE 集成。但是直接使用命令行工具创建的云引擎项目,默认会依赖一些环境变量,因此需要提前设置好这些环境变量。使用命令
lean env
可以显示出这些环境变量,手动在当前终端中设置好之后,就可以不依赖命令行工具来启动项目了。另外使用兼容sh
shell 的用户,还可以直接使用eval $(lean env)
,自动设置好所有的环境变量。启动时还可以给启动命令增加自定义参数,在
lean up
命令后增加两个横线--
,所有在横线后的参数会被传递到实际执行的命令中。比如启动 node 项目时,想增加--inspect
参数给 node 进程,来启动 node 自带的远程调试功能,只要用lean up -- --inspect
来启动项目即可。另外还可以使用
--cmd
来指定启动命令,这样即可使用任意自定义命令来执行项目:lean up --cmd=my-custom-command
。有些情况下,我们需要让 IDE 来运行项目,或者需要调试在虚拟机/远程机器上的项目的云函数,这时可以单独运行云函数调试功能,而不在本地运行项目本身:
更多关于云引擎开发的内容,请参考 云引擎服务总览。
部署
从本地代码部署
当开发和本地测试云引擎项目通过后,你可以直接将本地源码推送到 LeanCloud 云引擎平台运行:
对于生产环境是体验实例的云引擎的应用,这个命令会将本地源码部署到线上的生产环境,无条件覆盖之前的代码(无论是从本地仓库部署、Git 部署还是在线定义);而对于生产环境是标准实例的云引擎的应用,这个命令会先部署到预备环境,后续需要使用
lean publish
来完成向生产环境的部署,如需直接部署到生产环境,可额外添加--prod 1
选项:部署过程会实时打印进度:
默认部署备注为「从命令行工具构建」,显示在 应用控制台 > 云引擎 > 日志 中。你可以通过
-m
选项来自定义部署的备注信息:部署之后需要绑定一个云引擎自定义域名,然后通过 curl 命令来测试你的云引擎代码,或者通过浏览器访问相应的网址。
部署时忽略部分文件
部署项目时,如果有一些临时文件或是项目源码管理软件用到的文件,不需要上传到服务器,可以将它们加入到
.leanignore
文件。.leanignore
文件格式与 Git 使用的.gitignore
格式基本相同(严格地说,.leanignore
支持的语法为.gitignore
的子集),每行写一个忽略项,可以是文件或者文件夹。如果项目没有.leanignore
文件,部署时会根据当前项目所使用的语言创建一个默认的.leanignore
文件。请确认此文件中的 默认配置 是否与项目需求相符。从 Git 仓库部署
如果代码保存在某个 Git 仓库上,例如 GitHub,并且在 LeanCloud 控制台已经正确设置了 git repo 地址以及 deploy key,你也可以请求 LeanCloud 平台从 Git 仓库获取源码并自动部署。这个操作可以在云引擎的部署菜单里完成,也可以在本地执行:
-g
选项要求从 Git 仓库部署,Git 仓库地址必须已经在云引擎菜单中保存。-r <revision>
来指定部署特定的 commit 或者 branch。发布到生产环境
以下步骤仅适用于生产环境是 标准实例 的用户。
如果预备环境如果测试没有问题,此时需要将预备环境的云引擎代码切换到生产环境,可以在 应用控制台 > 云引擎 > 部署 中发布,也可以直接运行
publish
命令:这样预备环境的云引擎代码就发布到了生产环境:
查看日志
使用
logs
命令可以查询云引擎的最新日志:默认返回最新的 30 条,最新的在最下面。
可以通过
-l
选项设定返回的日志数目,例如返回最近的 100 条:也可以加上
-f
选项来自动滚动更新日志,类似tail -f
命令的效果:新的云引擎日志产生后,都会被自动填充到屏幕下方。
如果想查询某一段时间的日志,可以指定
--from
和--to
参数:单独使用
--from
参数导出从某一天到现在的日志:另外可以配合重定向功能,将一段时间内的 JSON 格式日志导出到文件,再配合本地工具进行查看:
--from
、--to
的时区为本地时区(运行 lean-cli 命令行工具的机器的本地时区)。查看 LeanStorage 状态报告
使用
metric
命令可以查看 LeanStorage 的状态报告:相关状态的描述如下:
Date
API Requests
Max Concurrent
Mean Concurrent
Exceed Time
Max QPS
Mean Duration Time
80% Duration Time
95% Duration Time
metric
接收参数与logs
类似,具体介绍如下:多应用管理
一个项目的代码可以同时部署到多个 LeanCloud 应用上。
查看当前应用状态
使用
lean info
可以查看当前项目关联的应用:此时,执行
deploy
、publish
、logs
等命令都是针对当前被激活的应用。切换应用
如果需要将当前项目切换到其他 LeanCloud 应用,可以使用
switch
命令:之后运行向导会给出可供切换的应用列表。
另外还可以直接执行
$ lean switch 其他应用的id
来快速切换关联应用。上传文件
使用
upload
命令既可以上传单个文件,也可以批量上传一个目录下(包括子目录)下的所有文件到 LeanCloud 云端。文件上传成功后会自动生成在 LeanCloud 云端的 URL,即上例中
successfully at:
之后的信息。上传 images 目录下的所有文件:
CQL 交互查询
可以通过
$ lean cql
命令来使用 CQL 语言查询存储服务数据:如果需要查询的 Class 有大量 Object / Array 等嵌套的数据结构,但以上的表格形式不便于查看结果,可以尝试用
$ lean cql --format=json
将结果以 JSON 格式来展示:LeanCache 管理
LeanCache 用户可以使用命令行工具来连接线上的 LeanCache 实例,对数据进行增删改查。
在一个已经关联过 LeanCache 实例的云引擎项目中,使用
lean cache
命令,即可连上对应的 LeanCache 实例。另外需要注意的是,每个 LeanCache 实例,默认会分成 16 个 db,方便管理。没有特殊设置的话,默认使用的都是 db0。连接成功之后,可以直接执行命令来对数据进行操作,比如查看某个 key 的值:
LeanCache 基于 Redis,所以大部分 Redis 命令都可以使用。关于 Redis 的命令,请参考官方文档:https://redis.io/commands 。
可以通过下列命令查询当前应用有哪些 LeanCache 实例:
注意:命令行工具操作 LeanCache 时,是通过 HTTPS 请求来进行通讯的,因此类似
pub/sub
、blpop
等需要长连接的命令不能直接使用。但是线上没有这个限制,可以直接使用。自定义命令
有时我们需要对某个应用进行特定并且频繁的操作,比如查看应用
_User
表的记录总数,这样可以使用命令行工具的自定义命令来实现。只要在当前系统的
PATH
环境变量下,或者在项目目录.leancloud/bin
下存在一个以lean-
开头的可执行文件,比如lean-usercount
,那么执行$ lean usercount
,命令行工具就会自动调用这个可执行文件。与直接执行$ lean-usercount
不同的是,这个命令可以获取与应用相关的环境变量,方便访问对应的数据。相关的环境变量有:
LEANCLOUD_APP_ID
LEANCLOUD_APP_KEY
LEANCLOUD_APP_MASTER_KEY
LEANCLOUD_APP_HOOK_KEY
LEANCLOUD_APP_PORT
$ lean up
启动应用时,默认的端口LEANCLOUD_API_SERVER
LEANCLOUD_REGION
cn
、us
、tab
例如将如下脚本放到当前系统的
PATH
环境变量中(比如/usr/local/bin
):同时赋予这个脚本可执行权限
$ chmod +x /usr/local/bin/lean-usercount
,然后执行$ lean usercount
,就可以看到当前应用对应的_User
表中记录总数了。贡献
lean-cli
是开源项目,基于 Apache 协议,源码托管在 https://github.com/leancloud/lean-cli,欢迎大家贡献。