EdgeOne CLI

概述

Edgeone CLI 提供了管理 Pages 函数的方法跟快速部署的能力,借助 CLI,可以在项目中生成、配置和调试函数,也可以将构建完的产物以文件夹或 Zip 包的形式上传至 Pages 平台。


一、准备工作

使用 Gmail 邮箱快速注册登录 腾讯云控制台
在控制台开通 Pages 服务,创建新的 Pages 项目,并将其克隆到本地。


二、快速开始

1. 安装

在准备工作阶段克隆下来的项目中,可以通过 npm 来安装 CLI:
npm install -g edgeone
通过 edgeone -v命令,可以查看是否安装成功。通过edgeone -h命令,可以查看相关的所有命令。


2. 登录

执行登录命令,按照提示选择 Global (国际站)或 China (中国站),建议选择 Global 以确保获取准确的数据和信息,然后在弹出的浏览器窗口完成登录。
edgeone login
完成登录后可以执行 edgeone whoami 查看当前登录账号的信息。


3. 初始化

成功登录后,执行初始化命令,在项目中初始化 Edgeone Pages 需要的基础环境:
edgeone pages init
完成初始化后,项目根目录下会生成functions文件夹和示例的函数,后续可以在该文件夹下不断新增和开发函数,函数的详细用法参考文档


4. 本地开发

完成初始化后,进入本地开发阶段:
edgeone pages dev
执行命令默认会在本地 8088 端口起一个服务,可以通过 http://localhost:8088/helloworld 访问示例函数,这里的访问路径,就是functions文件夹下函数文件的地址路径。

在本地开发时,Pages 函数的服务和 Pages 项目的服务可能运行在不同的端口上。为了让 Pages 项目能够调用函数,可以使用代理服务器或反向代理来将请求转发到正确的端口。以下是一个 webpack-dev-server 的配置示例:
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://localhost:8088', // Pages 函数的本地开发服务地址
chagneOrigin: true,
pathRewrite: {
'^/api': '',
}
}
}
}
}
这样,在 Pages 项目中使用 Fetch API:
fetch('/api/my-functions', {
method: 'POST',
body: JSON.stringify({ data: 'example' }),
})


5. 关联项目

如果需要使用 KV 存储 能力或将控制台已设置的环境变量同步到本地调试,可以执行关联项目命令,按要求输入项目名称,这里的项目名为准备工作中已创建的 Pages 项目名。
edgeone pages link


6. 提交部署

本地开发调试完成后,将项目代码推送到 Git 远端,即可触发 Pages 后台的 CI 构建部署,完成整个开发流程。


7. 本地部署

如果您的项目是通过“直接上传”创建的,也可以先在本地进行项目构建打包,然后通过如下命令直接部署至 Pages 平台。
edgeone pages deploy <directoryOrZip> -n <projectName> [-e <env>]
参数说明
<directoryOrZip>: 需要部署的文件夹或 ZIP 包路径(必填)
-n, --name: 需要部署的项目名称,项目不存在则自动创建新项目(必填)
-e, --env: 部署目标环境,可选值: production 或 preview(默认 production)

本地部署示例
# 生产环境部署
edgeone pages deploy ./dist -n project-name

# 预览环境部署
edgeone pages deploy ./ dist.zip -n project-name -e preview
注意:
上述命令依赖 edgeone login,您也可以参考“CI 流水线示例”使用 API Token 进行部署。


8. 切换账号

如果需要切换到其他腾讯云账号,可以执行以下命令然后重新登录:
edgeone switch


三、CI/CD 流水线集成

您也可以将 EdgeOne CLI 集成至 CI/CD 流水线以实现自动化部署。
注意:
EdgeOne CLI 的安装方式可参考前文“快速开始 - 安装”。


CI 流水线部署命令

deploy 命令支持不依赖 Git 的方式,直接从 CI/CD 流水线将文件夹或 ZIP 包部署至 EdgeOne Pages。
edgeone pages deploy <directoryOrZip> -n <projectName> -t <token> [-e <env>]
参数说明
<directoryOrZip>: 需要部署的文件夹或 ZIP 包路径(必填)
-n, --name: 需要部署的项目名称,项目不存在则自动创建新项目(必填)
-t, --token: 用于 CI/CD 流水线的 API Token(必填)
-e, --env: 部署目标环境,可选值: production 或 preview(默认 production)


CI 流水线示例

# 生产环境部署
edgeone pages deploy ./dist -n project-name -t $EDGEONE_API_TOKEN

# 预览环境部署
edgeone pages deploy ./dist.zip -n project-name -e preview -t $EDGEONE_API_TOKEN


API Token 获取方式

在 CI/CD 流水线中使用部署命令前,需在 EdgeOne Pages 控制台生成 AIP Token,更多信息请参阅文档 API Token