UNPKG

esa-cli

Version:

A CLI for operating Alibaba Cloud ESA EdgeRoutine (Edge Functions).

177 lines (119 loc) 4.65 kB
# ESA CLI 用于操作阿里云 ESA EdgeRoutine(边缘函数) 的 CLI,支持快速创建边缘函数、本地调试、版本发布与部署、触发器管理。 简体中文 | [English](./README.md) #### 参考 - [边缘安全加速(ESA)](https://www.aliyun.com/product/esa) - [边缘函数概述](https://help.aliyun.com/document_detail/2710021.html) > **注意**: **ESA CLI 在0.0.2以上版本的本地开发模式替换成了ESA边缘函数相同的Runtime,目前实际表现与线上相同,欢迎体验!** ESA CLI 处于公测阶段,如果您在使用中遇到任何问题,或者有任何建议,请随时提交 issue 或 pull request。 我们正在积极改进,并欢迎任何反馈。感谢您的理解与支持! ## 安装 使用npm安装并运行CLI命令: ```bash $ npm install esa-cli -g # 全局安装 $ esa -v # 查看版本 ``` ## 使用指南 ### 1. 初始化Routine项目 ```bash & esa init ``` 初始化命令有完整的流程引导,根据提示输入项目名称、选择模板即可。 ### 2. 开始本地调试 本地调试功能是 CLI 的核心,提供了比阿里云 ESA 控制台更便捷的调试体验。 ```bash & cd <Project Name> & esa dev [options] ``` #### 编写代码 在EdgeRoutine 项目中,入口文件为 `src/index.js`,基本结构如下: ```javascript const html = `<!DOCTYPE html> <body> <h1>Hello World!</h1> </body>`; async function handleRequest(request) { return new Response(html, { headers: { 'content-type': 'text/html;charset=UTF-8' } }); } export default { async fetch(event) { return event.respondWith(handleRequest(event)); } }; ``` 更多 EdgeRoutine 的 API 与语法,请参考[API文档](https://help.aliyun.com/document_detail/2710024.html) #### 本地调试 执行 `esa dev` 后,会自动打包入口文件,并启动本地调试服务,界面样式如下: ![调试界面](https://github.com/aliyun/alibabacloud-esa-cli/blob/master/docs/dev.png) - 在界面上按 `b` 即可在浏览器中打开调试页面。 - 在界面上按 `c` 可以清空面板。 - 在界面上按 `x` 可以退出调试。 - 可以用 `esa dev --port <port>` 临时指定端口,也可以使用 `esa config -l` 按照项目配置端口。 ### 3. 登录阿里云账号 需要先登录阿里云账号,才能进行远程管理操作。 首先请访问[阿里云RAM控制台](https://ram.console.aliyun.com/manage/ak)获取您的AccessKey ID和AccessKey Secret,再执行`esa login`根据提示输入。 ```bash & esa login # 登录 & esa logout # 登出 ``` ### 4. 生成版本 当本地调试完成后,需要生成一个代码版本用于部署。 ```bash & esa commit # 生成版本 ``` ### 5. 部署到环境 & 管理版本与部署 当代码版本生成后,需要部署到边缘节点。 通过`esa deployments [script]`命令可以管理版本与部署情况。 ```bash & esa deploy # 根据提示选择版本、目标环境即可部署 & esa deployments list # 查看部署情况 & esa deployments delete <versionId> # 删除版本 ``` _注意:已经被部署的版本无法删除。_ ### 6. 管理触发器 当被部署到节点后,您可以配置触发器,通过触发器可以访问您的边缘函数。触发器有两种: - 域名:为您的函数绑定域名,该域名必须是您ESA站点的子域名,您可以通过域名直接访问到该函数,此时边缘函数将作为该域名的源站。 - 路由:为您的ESA站点绑定函数路由,访问该路由可触发边缘函数执行,此时边缘函数可以和站点的源站进行通信。 ```bash # 域名 & esa domain list & esa domain add <domainName> # 需要是您的已备案域名 & esa domain delete <domainName> # 路由 & esa route list & esa route add [route] [site] & esa route delete <route> ``` ### 7. 管理函数 可以通过CLI查看、删除Routine函数。 ```bash & esa routine list # 查看函数 & esa routine delete <routineName> # 删除函数 ``` ## 命令 查看[命令](./docs/Commands.md) ## 配置文件 ### 全局配置 ```toml endpoint = "" # ESA API Endpoint lang = "zh_CN" # 语言 [auth] accessKeyId = "" # AccessKey ID accessKeySecret = "" # AccessKey Secret ``` ### 项目配置 ```toml name = "Hello World" # 项目名称 description = "Hello World" # 项目描述 entry = "src/index.js" # 入口文件 codeVersions = [ ] # 代码版本 [dev] port = 18080 # 调试端口 localUpstream = '' # 本地调试上游源站,会替换掉回源时当前的origin ``` ## LICENSE [The MIT License](./LICENSE)