通过CLI命令行界面工具使用边缘程序需要一定的专业技能,阿里云更推荐您通过控制台使用边缘程序。通过本文您可以了解使用EdgeRoutine CLI工具发布代码的具体步骤。
环境准备
运行环境:Node.js 8.0及以上版本。您可以前往Node.js官网下载Node安装包进行安装。
运行以下命令安装EdgeRoutine CLI工具。
$ npm install @alicloud/edgeroutine-cli -g说明目前EdgeRoutine CLI的最新版本为2.0.3,安装完成后您可以运行
edgeroutine-cli -v命令查询版本号。如果您的版本非最新,建议您升级至最新版本。最新版本的CLI进行build操作时,如果提示“The specified ArgValue is invalid参数无效”,请执行
edgeroutine-cli config初始化config.js文件后重试。
创建代码目录并切换到已创建目录。
$ mkdir yourProject; cd yourProject初始化环境并创建代码模板。
初始化环境命令如下所示。
$ edgeroutine-cli init代码模板示例如下,如果您已有目标代码,您可以将您的代码文件移动到当前目录命名为edge.js。
/** * Add the necessary event listener * @param {Event} fetch event, {Function} async function */ addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }) /** * Make a response to client * @param {Request} request */ async function handleRequest(request) { return new Response('Hello World!', { status: 200 }) }配置域名和AK信息(AccessKey ID和AccessKey Secret)。
$ edgeroutine-cli config可选:修改边缘程序ER(EdgeRoutine)的执行顺序。
双击步骤4生成的config.js文件。
修改pos参数为head或者foot,默认值为head。
pos表示边缘程序ER和全站加速制台配置(缓存配置、HTTPS配置、访问控制、性能优化、视频相关)的执行优先级。
head:边缘程序ER先执行。
foot:边缘程序ER后执行。
在模拟环境中测试代码。
说明您将代码发布到生产环境之前必须在模拟环境中进行验证。
创建模拟环境代码。
$ edgeroutine-cli build查看模拟环境代码。
$ edgeroutine-cli build --show回滚模拟环境代码。
可将模拟环境的代码回滚成线上的代码。回滚后您可以随时继续发布新代码至模拟环境,但此时您无法将空代码发布到生产环境。
$ edgeroutine-cli build --rollback删除模拟环境代码。
删除是指将模拟环境的配置删除,删除后您可以随时继续发布新代码至模拟环境,也可以将空代码发布到生产环境达到删除生产环境ER代码的目的,请注意风险。
$ edgeroutine-cli build --delete
测试模拟环境代码。
请您在终端环境中访问目标域名,EdgeRoutine模拟环境节点IP为42.123.XXX.XXX或42.123.XXX.XXX。
$ curl -v 'http://example.com/yourpath/' -x 42.123.XXX.XXX:80代码符合预期效果,日志中无报错即为测试成功。
发布代码到生产环境。
您在完成模拟环境验证后,可以将模拟环境的代码发布到线上环境。
$ edgeroutine-cli publish重要目前EdgeScript和EdgeRoutine共用一个发布系统,如果您同时使用了EdgeScript和EdgeRoutine功能,当您在EdgeRoutine CLI中执行
edgeroutine-cli publish命令进行发布时,系统会将模拟环境中的EdgeScript和EdgeRoutine配置一起发布至生产环境。您可以在执行publish前使用edgeroutine-cli build -s查看模拟环境中的EdgeScript和EdgeRoutine配置,确认无误后再执行publish发布至生产环境。查看线上环境代码。
$ edgeroutine-cli publish --show可选:删除线上环境代码,此时将直接彻底删除代码和配置。
$ edgeroutine-cli publish --delete
测试生产环境中的ER程序是否生效。
此时您可直接测试目标域名的线上业务,符合您代码预期表示配置成功。
$ curl -v 'https://example.com/yourpath/'