边缘安全加速 ESA为您提供 CLI 工具,您可以通过 CLI 工具进行函数和Pages全生命周期管理、调试、多文件功能部署等操作。
ESA CLI介绍
ESA CLI是ESA函数和Pages配套命令行工具,通过ESA CLI您可以完成如下任务。
在本地完成函数和Pages全生命周期管理,包括函数和Pages创建、版本发布与部署、自定义域名或路由管理等。
在本地或内网环境完成函数调试。CLI支持启动本地调试服务,模拟线上环境进行功能测试。
支持多文件工程的部署。CLI将自动完成npm等项目依赖文件的打包构建,允许您将本地Node.js项目部署在云上。
常用命令
ESA CLI提供众多命令用来进行函数和Pages管理。全部指令详情可参考:https://github.com/aliyun/alibabacloud-esa-cli
命令 | 说明 |
init | 选择ESA提供的模板完成项目初始化 |
dev | 自动启动本地调试服务 |
commit | 提交项目代码至云上,并将其保存为一个版本 |
deploy | 将某个版本部署在所有线上边缘节点 |
deployments | 查看当前的版本部署情况,或删除某个版本 |
project | 查看所有函数和Pages,或删除某个函数 |
site | 查看账户下所有站点信息 |
domain | 管理绑定到函数和Pages的域名 |
route | 管理绑定到函数和Pages的路由 |
login | 使用 AK/SK 完成账号登录 |
logout | 注销登录 |
config | 管理ESA CLI 的配置文件 |
lang | 选择ESA CLI 的语言 |
前提条件
在安装ESA CLI之前,请确保您已安装 Node.js 和 npm。建议优先使用 Volta 或 nvm 等 Node 版本管理器进行安装。
使用ESA CLI
使用npm完成ESA CLI 的安装,并查看 CLI 的版本和支持的命令。
npm install esa-cli -g # 全局安装CLI esa-cli -v # 查看CLI版本 esa-cli --help # 查看CLI命令账号登录:首先访问阿里云RAM控制台获取您的
AccessKey ID和AccessKey Secret,再执行esa login完成账号登录。如果您只是通过 CLI 在本地进行代码调试,则不需要进行账号登录。esa-cli login # 登录 esa-cli logout # 登出项目初始化:包括填写项目名称、选择模板等,可根据初始化命令引导完成整个流程。
esa-cli init本地调试:完成代码后,可以通过 CLI 进行代码本地调试。执行
esa-cli dev指令后,会自动打包入口文件,并启动本地调试服务。基本使用方法:
在界面上按
b即可在浏览器中打开调试页面。在界面上按
d可以查看调试引导。注意:Chrome 不允许命令行打开调试页面。在 Chrome 浏览器中打开Chrome://inspect#devices页面,可以看到一个运行的Remote Target,点击下面的inspect即可查看 console 信息。注意,EdgeRoutine 的代码为服务端代码,所以预览页面的控制台并不会输出入口文件中的console,只能通过inspect调试。在界面上按
c可以清空面板。在界面上按
x可以退出调试。可以用
esa-cli dev --port <port>临时指定端口。
本地调试时,也可以运行代码中的边缘存储API和Cache API。
说明为了线上数据安全,边缘存储服务在本地调试时不会获取和设置线上数据。如果需要在本地进行数据模拟,可以使用下面的方法:在函数项目根目录(与配置文件
esa.jsonc同级),创建kv.json文件,按照下面的格式写入数据:{ "namespace": { "k1": "v1", "k2": "v2" } }此时下面的代码可获取到模拟数据:
const edgeKv = new EdgeKV({ namespace: 'namespace' }); async function run() { const data = await edgeKv.get('k1', { type: 'text' }); console.log(data); // 'v1' }
版本生成:在本地调试完成后,需要生成一个代码版本用于部署。
esa-cli commit # 生成版本线上部署:当版本生成后,需要使用部署相关的指令,将版本部署至公有云边缘节点。
esa-cli deploy # 根据提示选择版本、目标环境即可部署 esa-cli deployments list # 查看部署情况 esa-cli deployments delete <versionId> # 删除指定版本管理自定义域名或路由:
当被部署到节点后,您可以配置自定义域名或路由,以访问您的函数和Pages:
域名:为您的函数和Pages绑定域名,该域名必须是您ESA站点的子域名,您可以通过域名直接访问到该函数,此时函数和Pages将作为该域名的源站。
路由:为您的ESA站点绑定路由,访问该路由可触发函数和Pages执行,此时函数和Pages可以和站点的源站进行通信。
# 域名 esa-cli domain list esa-cli domain add <domainName> # 需要是您的已备案域名 esa-cli domain delete <domainName> # 路由 esa-cli route list esa-cli route add [route] [site] esa-cli route delete <route>管理函数:可以通过 CLI 查看、删除函数。
esa-cli project list # 查看函数 esa-cli project delete <PROJECT_NAME> # 删除函数