EdgeOne CLI
概述
EdgeOne CLI 提供了管理 Makers 函数的方法和快速部署的能力,借助 CLI,可以在项目中生成、配置和调试函数,也可以将构建完的产物以文件夹或 Zip 包的形式上传至 Makers 平台。
双命令策略说明
随着 EdgeOne Pages 升级为 EdgeOne Makers,CLI 同步引入新命名空间
edgeone makers:命令族 | 状态 | 说明 |
edgeone makers <command> | 推荐 | 新命名空间,主推使用;新功能(如 edgeone makers create)仅在此提供。 |
edgeone pages <command> | 过渡期可用 | 老命名空间,所有原有子命令保持完整功能;执行时会显示一行 deprecation 提示。 |
两个命名空间的子命令完全等价——
edgeone pages dev 与 edgeone makers dev 行为一致,可以平滑切换。迁移建议
CI / CD 脚本:建议在合适的发布周期内将
edgeone pages xxx 替换为 edgeone makers xxx;过渡期内不替换不会影响构建本地开发:直接使用新命令
edgeone makers xxx新功能:部分新功能(如
edgeone makers create)仅在新命名空间下提供,不在 edgeone pages 下注册老命令下线计划
edgeone pages 命名空间在过渡期结束后会逐步下线,下线前会通过 CLI deprecation 提示与文档公告提前通知。当前阶段不会下线,存量用户的脚本与流程不会受影响。一、准备工作
使用 Gmail 邮箱快速注册登录 腾讯云控制台。
在控制台开通 Makers 服务,创建新的 Makers 项目,并将其克隆到本地。
二、快速开始
1. 安装
在准备工作阶段克隆下来的项目中,可以通过 npm 来安装 CLI:
npm install -g edgeone
通过
edgeone -v 命令,可以查看是否安装成功。通过 edgeone -h 命令,可以查看相关的所有命令。2. 登录
执行登录命令,按照提示选择
Global (国际站)或 China (中国站),建议选择 Global 以确保获取准确的数据和信息,然后在弹出的浏览器窗口完成登录。edgeone login
完成登录后可以执行
edgeone whoami 查看当前登录账号的信息。3. 初始化项目
EdgeOne CLI 提供两种方式开始一个项目,您可以根据自己的起点选择:
从零创建新项目(
edgeone makers create)—— 拉取官方模板快速起步。在已有项目中初始化(
edgeone makers init)—— 给现有项目加上 Makers 配置。3.1 从零创建新项目
执行以下命令拉取官方模板,创建一个新项目:
edgeone makers create [project-name] --template <slug>
参数说明:
project-name:要创建的项目目录名(纯目录名)。
--template:模板 slug 或 GitHub 目录(必填)。
-t, --token: 用于 CI/CD 或非交互环境的 API Token;已登录时可省略。
注意:
create 命令仅在新命名空间 edgeone makers 下提供,老命令 edgeone pages 没有此命令。
create 无需登录即可使用;后续 dev/deploy 时需先执行 edgeone login。
命令成功后会打印"下一步指引",请按指引手动执行 npm install 等操作(默认不会自动安装依赖)。
3.2 在已有项目中初始化
如果您已有一个现成的项目(例如使用 Next.js 等框架已经搭好的工程),可以通过以下命令在项目中初始化 EdgeOne Makers 需要的基础环境:
edgeone makers init
初始化过程中,根据指引以及您的需求,项目根目录下会生成
edge-functions 或 cloud-functions 文件夹和示例的函数,后续可以在该文件夹下不断新增和开发函数,函数的详细用法参考文档。4. 本地开发
完成初始化后,进入本地开发阶段:
edgeone makers dev
注意:
该命令会优先读取 edgeone.json 中的 devCommand 参数来启动 dev 服务,若没有该配置则会读取 package.json 的 dev 命令进行启动。切记请勿在 edgeone.json 或 package.json 中配置 edgeone makers dev!
Edge Functions 调试服务有启动次数限制,因此尽量避免频繁退出启动 dev 服务(dev 服务内热更新不会增加启动次数)。
对于不方便执行
edgeone login 的环境,可在 edgeone makers dev 后添加参数 -t, --token(API Token 获取方式见文末)。执行命令默认会在本地 8088 端口起一个服务,Makers 函数的服务和 Makers 项目的服务都运行在同一个端口上,无需额外代理。
您可通过
http://localhost:8088/ 访问前端页面,在前端项目中直接使用 Fetch API,访问路径即为 edge-functions、cloud-functions 文件夹下函数文件的路径。// ./cloud-functions/api/my-functions.jsfetch('/api/my-functions', {method: 'POST',body: JSON.stringify({ data: 'example' }),})
5. 关联项目
edgeone makers link
注意:
对于不方便执行
edgeone login 的环境,可在 edgeone makers link 后添加参数 -t, --token(API Token 获取方式见文末)。若您需要 link 的项目不存在,也可以在 CLI 的指引下直接创建新项目。
6. 提交部署
本地开发调试完成后,将项目代码推送到 Git 远端,即可触发 Makers 后台的 CI 构建部署,完成整个开发流程。
7. 本地部署
您也可以选择通过 deploy 命令本地构建部署。如果需 link 已存在的项目,必须为直接上传类型。
edgeone makers deploy
参数说明
<directoryOrZip>: 需要部署的文件夹或 ZIP 包路径
-n, --name: 需要部署的项目名称,项目不存在则自动创建新项目
-e, --env: 部署目标环境,可选值: production 或 preview(默认 production)
注意:
执行 deploy 时,CLI 会自动构建并部署至 Makers,无需指定文件夹;若手动构建,则需将 Makers Functions 相关文件夹及 package.json 放入输出目录(如 dist),再执行
edgeone makers deploy ./dist
本地部署示例
# 生产环境部署edgeone makers deploy# 预览环境部署edgeone makers deploy -e preview
8. 切换账号
如果需要切换到其他腾讯云账号,可以执行以下命令然后重新登录:
edgeone switch
三、CI/CD 流水线集成
您也可以将 EdgeOne CLI 集成至 CI/CD 流水线以实现自动化部署。
注意:
EdgeOne CLI 的安装方式可参考前文“快速开始 - 安装”。
CI 流水线部署命令
deploy 命令支持不依赖 Git 的方式,直接从 CI/CD 流水线将文件夹或 ZIP 包部署至 EdgeOne Makers。edgeone makers deploy [<directoryOrZip>] -n <projectName> -t <token> [-e <env>]
参数说明
<directoryOrZip>: 需要部署的文件夹或 ZIP 包路径
-n, --name: 需要部署的项目名称,项目不存在则自动创建新项目(必填)
-t, --token: 用于 CI/CD 流水线的 API Token(必填)
-e, --env: 部署目标环境,可选值: production 或 preview(默认 production)
注意:
执行 deploy 时,CLI 会自动构建并部署项目;若手动构建,则需将 Makers Functions 相关文件夹及 package.json 放入输出目录(如 dist),再执行
edgeone makers deploy ./distCI 流水线示例
# 生产环境部署edgeone makers deploy -n project-name -t $EDGEONE_API_TOKEN# 预览环境部署edgeone makers deploy -n project-name -e preview -t $EDGEONE_API_TOKEN
API Token 获取方式
四、环境变量管理
// 列出控制台配置的所有环境变量edgeone makers env ls// 拉取控制台环境变量到本地文件edgeone makers env pull// 拉取环境变量可以指定本地文件edgeone makers env pull -f .env.prod// 新增/修改环境变量edgeone makers env set ENV_VAR_KEY env_var_value// 删除环境变量edgeone makers env rm ENV_VAR_KEY
