边缘开发者平台
  • 边缘函数
    • 概述
    • 快速指引
    • 操作指引
      • 函数管理
      • Web调试
      • 触发配置
      • 环境变量
      • Code Replica
    • Runtime APIs
      • addEventListener
      • Cache
      • Cookies
      • Encoding
      • Fetch
      • FetchEvent
      • Headers
      • Request
      • Response
      • Streams
        • ReadableStream
        • ReadableStreamBYOBReader
        • ReadableStreamDefaultReader
        • TransformStream
        • WritableStream
        • WritableStreamDefaultWriter
      • Web Crypto
      • Web standards
      • Images
        • ImageProperties
    • 示例函数
      • 示例概述
      • 301重定向
      • 获取客户端URL信息
      • 基于客户端地理位置的自定义
      • 获取客户端地理位置信息
      • 批量重定向
      • 返回 HTML 页面
      • 返回 JSON
      • Fetch 远程资源
      • 请求头鉴权
      • 修改响应头
      • AB 测试
      • 设置 Cookie
      • 基于请求区域重定向
      • Cache API 使用
      • 缓存 POST 请求
      • 流式响应
      • 合并资源流式响应
      • 防篡改校验
      • m3u8 改写与鉴权
      • 图片自适应缩放
      • 图片自适应 WebP
      • 自定义 Referer 限制规则
      • 远程鉴权
      • HMAC 数字签名
      • 自定义下载文件名
      • 获取客户端 IP
    • 最佳实践
      • 通过边缘函数实现自适应图片格式转换
  • KV Storage
    • Overview
    • Operation Guide

Code Replica

代码副本主要用于修改边缘函数代码时,在不影响线上流量的前提下,安全地验证新代码逻辑,降低发布风险。

背景介绍

在使用边缘函数处理业务请求时,每次代码迭代(如新增业务逻辑、修复缺陷、优化性能)都存在直接上线影响生产流量的风险。EdgeOne 边缘函数支持创建代码副本,您可以将待验证的新版本代码部署到副本中,并通过配置指定请求头 EO-Function-Replica-Name:<副本名称>,将特定测试流量路由到该副本版本进行验证,普通生产流量仍由正式版本函数处理,两者完全隔离、互不影响。
通过代码副本功能,您可以:
零风险验证:新代码仅对携带指定请求头的测试请求生效,生产流量完全不受影响;
灵活迭代:可随时修改副本代码、反复测试,无需每次都发布至正式版本;
快速上线:验证通过后,直接将副本代码提升为正式版本,高效完成发布。

前置条件

1. 已登录 边缘安全加速平台 EO,并完成站点添加。
2. 已在边缘函数 > 函数管理中创建至少一个边缘函数。

操作介绍

创建代码副本

1. 登录 边缘安全加速平台 EO,在左侧菜单栏中,单击边缘函数 > 函数管理,进入函数列表页;
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. 同步至生产代码后,原代码将被替换,无法撤销。建议变更前做好备份。
2. 如果希望在副本验证通过后,将新版本代码以灰度方式逐步发布至生产环境,可以参考 边缘函数灰度发布与分地域执行