安装包加速用于加快即时服务实例内常见依赖包的下载速度。开启后,系统会在环境中注入并尝试启动 P2P 下载代理,对支持范围内的下载请求使用缓存和节点间分发能力,减少重复回源,提升下载效率。
适用范围与前置条件
安装包加速是模板级能力,既可以在创建模板时开启,也可以对已就绪的存量模板执行一键开启。
一键开启会创建一个新的派生模板,不会修改原模板,也不会影响已经创建的实例。
当前只在部分地域开放。如果控制台没有显示安装包加速开关或一键入口,说明当前地域未开放。
只会处理平台配置的下载域名白名单中的
GET请求。不支持通配符域名;不在白名单内的域名会正常直连,不会被加速。
动态接口、登录请求、非
GET请求,以及未进入白名单的域名不会通过 P2P 代理处理。
工作原理与加速效果
开启安装包加速后,您无需修改安装命令、手动配置代理、导入证书或修改域名解析。系统会自动处理符合条件的下载请求。
相同依赖包在集群内已有缓存时,可以从缓存或 P2P 节点获取,减少重复回源。
多个实例同时下载相同依赖包时,可以共享已下载的数据块。
第一次下载、冷缓存或没有可用节点时,仍可能需要从原始源站下载。
加速效果受源站限速、网络质量、依赖包大小和缓存命中情况影响。
支持加速的下载源
默认支持加速的下载源涵盖以下常见类型:
类型 | 常见域名 |
Python / PyPI |
|
国内通用镜像 |
|
npm / Node.js |
|
Conda |
|
Go |
|
平台可能会根据地域调整白名单范围,实际生效范围以当前环境配置为准。系统只处理白名单中域名的 GET 请求,不支持通配符域名。动态接口、登录请求、非 GET 请求以及不在白名单内的域名会正常直连,不会被加速。
开启安装包加速
安装包加速可以在创建模板时开启,也可以对已有模板一键开启。从已开启的模板创建的实例会自动继承加速能力。
创建模板时开启
进入即时服务工作台,创建模板。
创建方式选择从镜像创建或从公共模板。
打开安装包加速开关。
填写其他必要信息并提交。
模板构建完成后,在模板列表中查看是否出现安装包加速标识。
如果页面没有显示安装包加速开关,说明当前地域未开放该能力。
从实例直接保存为模板时,不能新开启安装包加速,只会继承源实例的状态。如果需要新开启,请从镜像、兼容的公共模板或兼容的已有模板重新创建。
对已有模板一键开启
进入即时服务工作台的私有模板列表。
选择一个状态就绪且未开启加速的模板。
在操作菜单中单击更多操作图标(⋮),然后单击安装包加速。
系统会基于该模板创建一个新的派生模板,并自动开启加速能力。
等待新模板构建完成。
使用新模板创建实例,并按照确认加速已生效检查加速是否生效。
一键开启不会修改原模板,也不会影响已经创建的实例。成功提示仅表示新模板构建已发起,需等待新模板就绪后再验证。
继承规则
安装包加速是模板级能力,其继承行为如下:
模板开启后,从该模板创建的实例自动开启。
从已开启的模板衍生出的新模板会继续继承该能力。
当前不支持在衍生模板中关闭该能力。即使传入
enablePackageAccelerate: false,已继承的能力也不会被移除。如果需要未开启加速的模板,请从原始镜像或未开启加速的源重新创建。
不同创建路径的行为如下:
创建路径 | 能否新开启 | 行为 |
从镜像创建 | 可以 | 系统在构建过程中注入并启动加速能力。 |
通过 E2B 从镜像构建 | 可以 | 无论是否包含构建步骤,都可以开启。 |
从模板重建 | 可以 | 重新执行构建流程时可以开启。 |
从模板非重建派生 | 视源环境而定 | 源环境包含兼容加速组件时可以开启;否则系统自动降级,构建不会失败,但最终模板不带该能力。 |
从实例保存 | 不可以 | 只继承源实例状态,不能作为新开启入口。 |
对于较旧或不兼容的存量模板,系统会自动降级:构建流程继续执行,不会因为加速组件缺失或版本不兼容而失败,但生成的模板可能不会获得安装包加速能力。
API 与 E2B 兼容
安装包加速支持以下开启方式:
Dashboard API 请求体:
enablePackageAccelerateSDK / 扩展 Header:
X-EAS-Enable-Package-AccelerateDashboard runtime env:
ENABLE_PACKAGE_ACCELERATEE2B ENV step:
ENABLE_PACKAGE_ACCELERATE
开关解析优先级如下(从高到低):
地域开关
已继承开启
请求体
enablePackageAccelerateX-EAS-Enable-Package-AccelerateHeaderDashboard runtime env
第一个 E2B ENV step
false(默认值)
只读取第一个 ENV step,后续同名 ENV 不生效。
开关值统一使用
true/false。
确认加速已生效
查询模板状态
模板构建完成后,查询模板信息:
curl -sS "https://<sandbox-api-host>/templates/<templateID>" \
-H "X-API-KEY: <group-token>"响应的 features 字段中包含 packageAcceleration,表示该模板已开启安装包加速:
{
"templateID": "my-template",
"features": ["packageAcceleration"]
}packageAcceleration 是模板级能力标记,只表示该能力已写入模板,不必然代表存量环境中的加速组件已经成功启动。对于从旧模板、旧实例或其他存量环境派生的模板,可能因缺少兼容组件或组件版本过低而自动降级。如需确保安装包加速有效,建议从新的镜像重新构建模板,并在构建请求中开启 enablePackageAccelerate: true。
在实例内检查
从已开启安装包加速的模板创建实例后,可以在实例终端执行以下检查:
命令 | 预期结果 |
| 输出 |
| 输出 |
| 返回成功响应 |
以上命令同时满足时,表示环境变量唯一、代理进程存在、健康检查通过。它们仅用于确认加速能力已启动,不代表某一次下载一定会命中缓存。具体下载速度仍取决于缓存命中情况和网络状态。
使用注意事项
不要手动设置
http_proxy、https_proxy、CA 证书或/etc/hosts,系统会在开启能力后自动处理。安装包加速只影响依赖包下载,不改变业务代码执行逻辑。
如果包管理器使用了私有源、代理源或未配置的镜像域名,这些下载不会进入加速范围。
首次下载可能没有明显加速;重复下载或并发下载相同依赖时更容易看到收益。
从已开启加速的模板创建的实例会自动继承能力,当前不支持在衍生模板中关闭。
常见问题
为什么控制台看不到安装包加速开关或一键入口?
当前地域未开放安装包加速。请联系平台管理员确认地域支持情况。
为什么某些依赖包下载没有变快?
常见原因包括:
依赖源域名不在白名单内。
下载不是
GET请求。该内容首次下载,本地没有缓存。
源站或中间网络限速。
当前没有可用的 P2P 节点或缓存节点。
为什么从实例保存的模板没有新开启加速?
从实例保存为模板是快照式创建,只继承源实例状态,不能作为新开启入口。请从镜像或兼容模板重新创建。
为什么旧模板构建后仍没有加速标识?
旧模板可能缺少兼容的加速组件,或组件版本不满足要求。系统会自动降级,不会阻塞构建,但最终模板不会开启该能力。
为什么不能在衍生模板中关闭加速?
安装包加速会作为模板能力被衍生环境继承,当前不支持在衍生模板中关闭。如果必须获得未开启状态,请从未开启加速的源重新创建。
为什么一键开启后原模板没有变化?
一键开启会创建一个新的派生模板,不会修改原模板,也不会影响已经创建的实例。请使用新生成的模板创建后续实例。