代码副本主要用于修改边缘函数代码时,在不影响线上流量的前提下,安全地验证新代码逻辑,降低发布风险。
背景介绍
在使用边缘函数处理业务请求时,每次代码迭代(如新增业务逻辑、修复缺陷、优化性能)都存在直接上线影响生产流量的风险。EdgeOne 边缘函数支持创建代码副本,您可以将待验证的新版本代码部署到副本中,并通过配置指定请求头 EO-Function-Replica-Name:<副本名称>,将特定测试流量路由到该副本版本进行验证,普通生产流量仍由正式版本函数处理,两者完全隔离、互不影响。
通过代码副本功能,您可以:
零风险验证:新代码仅对携带指定请求头的测试请求生效,生产流量完全不受影响;
灵活迭代:可随时修改副本代码、反复测试,无需每次都发布至正式版本;
快速上线:验证通过后,直接将副本代码提升为正式版本,高效完成发布。
前置条件
2. 已在边缘函数 > 函数管理中创建至少一个边缘函数。
操作介绍
创建代码副本
2. 在函数列表中,单击需要更新的函数名称,进入函数详情页;
3. 在函数详情页中,单击新建副本,支持拷贝生产代码或自定义创建;
4. 完成代码编辑后,单击保存,输入副本名称后即可完成创建。副本名称可输入 1-50 个字符,允许的字符为 a-z、0-9、-,且 - 不能单独使用或连续使用,不能放在开头或结尾。创建后不可修改。
说明:
1. 一个函数内最多支持创建两个代码副本。
2. 副本代码与生产代码完全隔离,对副本的修改不会影响线上函数的正常运行。
3. 环境变量与密钥对副本代码同样有效。
携带请求头发送测试请求,验证代码效果
场景假设
控制台已创建名称为 test-2xkazsasyf6k-1206341531 的函数,默认访问域名为:
https://test-2xkazsasyf6k-1206341531.eo-edgefunctions.com,配置触发规则为 HOST = www.example.com AND URL_Path = /pic,副本名称为 test-replica。携带指定请求头 EO-Function-Replica-Name: test-replica,向函数自定义域名路径或默认访问域名发送请求,即可将特定测试流量路由到该副本版本进行验证。
操作步骤
1. 使用 curl、Postman 或其他 HTTP 客户端工具,向函数自定义域名路径或默认访问域名发送请求,并携带 EO-Function-Replica-Name 请求头。以 curl 为例:
curl -H "EO-Function-Replica-Name: test-replica" https://www.example.com/pic
curl -H "EO-Function-Replica-Name: test-replica" https://test-2xkazlasyf6k-1306341531.eo-edgefunctions.com
2. 观察响应内容,确认副本代码的执行结果是否符合预期。
说明:
1. 请求头名称和值均区分大小写,请确保测试时发送的请求头与此处配置完全一致。
2. 不携带指定请求头的普通请求仍由生产代码处理,整个测试过程不影响生产代码,可放心进行。
验证通过,将副本代码同步至生产代码
1. 在函数详情页的代码副本模块,选择已验证的副本,单击对比并同步至生产代码;
2. 确认无误后,单击确认同步;
3. 二次确认后,副本中的代码将会覆盖生产代码,开始处理所有生产流量。
说明:
1. 同步至生产代码后,原代码将被替换,无法撤销。建议变更前做好备份。