DevPod 是函数计算 FC 提供的云端开发环境。它集成了 VS Code、Jupyter Notebook 与终端等常用开发工具,支持通过预置或自定义的容器镜像快速创建开发环境。用户可以在 DevPod 中完成 AI 模型的开发、训练、调试,并将其部署为在线服务。
准备工作
在开始之前,请确保您已拥有一个可用的阿里云账号,并已登录到FunModel控制台。
切换至新版控制台:如果当前为旧版,请单击页面右上角的 新版控制台。
完成授权:首次登录时,请根据页面指引完成 RAM 角色授权等配置。
快速入门
本教程将以一个 ModelScope 分词模型为例,引导您完成从搭建开发环境到最终部署为在线服务的完整流程。
步骤1:创建DevPod实例
在 模型市场 左侧导航栏选择 自定义开发;
配置以下关键参数:
参数
说明
填写示例
地域
在右上角选择 DevPod 实例部署的阿里云地域
华东1(杭州)选择模型环境
选择一个预置的深度学习框架环境,或指定自定义镜像
Modelscope 1.26.0模型名称
为实例设置一个便于识别的名称
tokenizer-deploy-dev模型描述
简要说明模型用途、功能或开发目标
ModelScope 分词模型模型来源
根据模型来源说明填写相关路径信息
无(Modelscope 1.26.0模型环境已包含相关内容)
资源配置
根据任务需求选择实例类型和GPU规格
角色名称
指定用于访问云资源的 RAM 角色(需具备必要权限)
AliyunFCDefaultRole点击 DevPod开发调试。
步骤2:开发与调试
进入 VS Code 在线开发环境。
打开 Terminal 执行
./run.sh,下载模型至外置存储并启动应用,可在运行日志中看到模型加载和 Web 服务启动的日志。打开新的 Terminal 执行
curl localhost:9000,查看分词结果。

步骤3:制作镜像并部署服务
完成开发调试后,您需要将当前包含代码和依赖的环境固化成一个容器镜像,并将其部署为在线服务。
操作步骤:
制作镜像。
返回 DevPod 实例列表页面,在实例的操作列中选择 制作镜像。
选择ACR 类型:个人版/企业版,填写以下参数:
配置项
说明
ACR 地域
选择已创建的 ACR 实例所在地域(必须与 DevPod 一致)
ACR 命名空间
从已创建的命名空间中选择
ACR 镜像仓库
选择目标仓库(需属于所选命名空间)
镜像名称(版本)
自定义镜像标签,如
v1.0或latest自定义排除路径
可指定不打包的目录(如
/data/cache),避免敏感数据泄露或减小镜像体积。系统自动排除:/.function_ai、/usr/local/share/jupyter/labextensions注意:NAS 挂载目录(
/mnt/<name>)中的内容不会被打包进镜像。其他选项保持默认,然后点击 开始制作。AI 相关的镜像通常较大,首次构建和推送耗时较长,请耐心等待。
部署为在线服务。
镜像制作成功后,系统会自动跳转到镜像详情页。点击 直接部署。
配置部署参数:
启动命令:输入
/code/run.sh。监听端口:输入
9000,与main.py中指定的端口一致。超时时间:单次请求最大处理时间(单位:秒)
点击 开始部署。
部署成功以后,可以通过模型列表找到对应的模型服务并进入。此时如果要再次进入 DevPod,需要点击模型服务右上角的 DevPod 开发。
步骤4:验证在线服务
部署成功后,进入模型服务详情页,选择 在线调试。
在添加一个请求:
Path:输入
/。HTTP Method:选择
GET。
点击 发送请求,在右侧的响应结果区域可以看到模型的回答。
核心功能详解
环境管理
您可以在 自定义开发 页面对 DevPod 实例进行完整的生命周期管理:
创建:根据需求配置并创建新的开发环境。
启动/停止:在不使用实例时可将其停止,以节省计算资源费用。停止后,计算资源会被释放,但
/mnt目录下的持久化数据会保留。删除:彻底删除实例。请注意,删除操作不可逆,但
/mnt目录下的数据仍会保留。
开发工具
DevPod 在一个统一的界面中集成了三种主流开发工具,您可以在实例的 DevPod 开发调试 页面中随时切换:
VS Code:功能强大的在线集成开发环境,基于
openvscode-server,提供完整的代码编辑、调试、Git 管理和终端功能。Jupyter Notebook:业界标准的交互式计算环境,非常适合进行数据探索、算法实验和模型可视化。
Terminal:一个完整的 Linux Shell 环境,您可以执行任何命令行操作,如安装软件、管理文件等。
持久化存储
每个 DevPod 实例都会自动挂载一个 NAS 文件存储目录,路径为 /mnt/<devpod名称>。该目录中的数据不会随实例销毁而丢失,建议将模型权重、训练数据等重要文件存放于此。
DevPod默认启用的环境变量:
HF_HOME=/mnt/<devpod名称>/hf
MODELSCOPE_CACHE=/mnt/<devpod名称>/modelscope
OLLAMA_MODELS=/mnt/<devpod名称>/ollama持久化存储的特点:
制作镜像时不会被 build 到镜像中;
即使 DevPod 删除销毁,内容依然存在;
适合存储大模型文件,控制镜像体积。
提示: DevPod 内置开发镜像默认都有一个示例代码main.py和run.sh,可以直接运行run.sh启动应用,第一次执行run.sh会自动下载模型到持久化的 NAS 盘,下载目录为环境变量 MODELSCOPE_CACHE 指向的目录
自定义镜像
当预置镜像无法满足您的需求时(例如需要特定版本的库、自定义的系统工具或私有基础镜像),可以使用您自己的自定义镜像来创建 DevPod 实例。
使用方法:在创建 DevPod 实例时,模型环境 选择自定义镜像,并填入您在容器镜像服务(ACR)中的镜像地址。
镜像要求:
操作系统:基于 AMD64 架构的 Linux 系统,最低要求 glibc 2.28 推荐基础镜像:
debian:10、ubuntu:20.04、centos:8或更高版本。预装工具:必须包含
curl命令。用户权限:默认用户为
root。可选支持:如果需要使用 jupyter,则镜像中需安装 Python ≥ 3.8 且包含
pip命令。GPU兼容性:函数计算GPU目前使用的驱动版本为570.133.20,其对应的CUDA用户态驱动版本为12.8。为了最佳的兼容性支持,建议您使用的CUDA Toolkit最低版本为11.8,最高不超过平台提供的CUDA用户态驱动版本。详情见:【产品变更】GPU驱动版本由550.54.15升级至570.133.20。
镜像构建与ACR集成
您可以将当前 DevPod 实例的完整运行环境(包括代码、依赖、配置)打包为 Docker 镜像,并推送至阿里云容器镜像服务(ACR),实现环境固化与复用。
使用限制:
仅支持在 运行中 的 DevPod 实例上执行镜像构建。
ACR 实例必须与 DevPod 位于同一地域。虽然 ACR 个人版支持跨地域创建,但为避免网络延迟与推送失败,强烈建议使用同地域实例。
ACR 版本选择
在保存镜像时,您可以选择 ACR 个人版或企业版。
特性 | 个人版 ACR | 企业版 ACR | 推荐场景 |
费用 | 免费 | 按实例规格计费 | 个人版适合个人学习、功能验证;企业版适合生产环境。 |
网络访问 | 公网 | VPC 内网 | 企业版通过内网访问,安全性更高,网络更稳定。 |
性能 | 受公网带宽限制 | 内网高速传输 | 企业版在推送/拉取大镜像(如 >10 GiB)时速度更快、成功率更高。 |
准备ACR实例
个人版:访问 ACR 控制台,确保您已在与 DevPod 相同的地域开通个人版实例。
企业版:访问 ACR 控制台,创建或确保已有一个与 DevPod 实例在同一 VPC 下的企业版实例、命名空间和镜像仓库。
远程访问与调试
DevPod 允许您将实例内部运行的 HTTP 服务通过安全代理暴露出来,方便进行远程调试或前后端联调。
操作步骤:
在 DevPod 终端内启动 HTTP 服务,例如:
python -m http.server 8000在 DevPod 实例的 快速访问 页面,找到对应端口的代理地址。地址格式通常为:
https://<devpod-id>.cn-<region>.ide.fc.aliyun.com/proxy/8000/通过此 URL 即可从本地浏览器或使用
curl等工具访问您的服务。
重要提示:
此代理方式会在 URL 中增加
/proxy/<port>前缀。如果您的前端应用(如 React/Vue SPA)使用了绝对路径引用静态资源(如/main.js),可能会导致资源加载失败。您需要修改前端应用的构建配置,为其增加一个公共路径前缀。
文件传输
通过 IDE 界面:在 VS Code 或 JupyterLab 的左侧文件浏览器中,您可以通过右键菜单或拖拽的方式上传和下载文件。此方式最便捷,适合传输小文件。
通过 HTTP API:
# 上传文件 curl -T /tmp/app.py -u root:{vscodeToken} {url}/webdav/app.py # 下载文件 curl -u root:{vscodeToken} -o app.py {url}/webdav/app.py # 删除文件 curl -X DELETE -u root:{vscodeToken} {url}/webdav/app.py说明通过DevPod控制台快速访问页签,找到上述相关参数获取命令。
大文件传输:对于大型文件(如数据集、模型),建议先上传到阿里云对象存储 OSS,然后在 DevPod 终端内使用
ossutil工具高速下载到/mnt目录。
最佳实践
成本优化
及时启停实例:在非工作时间 停止 DevPod 实例。停止状态下只收取少量存储费用,可节省大量计算资源成本。
善用持久化存储:将大型数据集和模型文件存放在
/mnt目录,而不是打包进镜像。这可以显著减小镜像体积,降低 ACR 存储成本和模型部署时的拉取时间。
安全规范
自定义排除路径:在制作镜像时,使用 自定义排除路径 功能,避免将本地缓存、日志或配置文件等无关或敏感内容打包进生产镜像。
使用ACR企业版进行安全扫描:对于生产环境,建议使用 ACR 企业版,并开启镜像安全扫描功能,及时发现镜像中的安全漏洞。
团队协作流程
构建基础环境镜像:由团队负责人或架构师创建一个包含所有通用依赖、工具和配置的自定义镜像,并推送到团队共享的 ACR 企业版仓库中。
共享开发环境:团队成员基于此共享镜像创建各自的 DevPod 实例,确保开发环境的一致性。
共享数据与模型:通过共享的 NAS 文件系统(或 OSS),团队成员可以方便地访问和共享大型数据集与模型文件。
参考信息
官方预置镜像
如需在官方环境基础上微调,可使用 FunModel 预置镜像作为基础镜像:
国内地域:
serverless-registry.cn-hangzhou.cr.aliyuncs.com/functionai/vllm-openai:<tag>海外地域:
serverless-registry.ap-southeast-1.cr.aliyuncs.com/functionai/vllm-openai:<tag>
可用 <tag> 包括 v0.10.1、v0.10.2和v0.11.0 。为确保使用最新的环境,推荐您查阅以下链接获取完整的镜像版本列表:FunModel 预置镜像列表。
故障排除 (FAQ)
DevPod 实例启动失败
现象:实例长时间处于“启动中”状态或启动失败。
排查步骤:
检查自定义镜像:若使用自定义镜像,请确认镜像在本地或其他环境中可以正常拉取和启动。
查看实例日志:查看日志排查具体错误。
镜像部署服务失败
现象:模型服务部署超时或失败。
可能原因与解决方案:
镜像拉取超时:若镜像较大,首次部署时底层节点拉取可能耗时较长。可稍后在服务详情页手动触发重新部署。
服务启动失败:
检查镜像是否符合要求(即上文镜像要求中的 curl、glibc 版本等)。
检查是否是 GPU 库存不足,并进行重试。
详情可参见:GPU实例FAQ。
JupyterLab 无法访问
现象:在 GPU 实例中,JupyterLab 无法正常启动或访问。
排查步骤:
在 DevPod 终端中确认 Python 版本不低于 3.8。
检查
jupyter相关的 Python 库是否已正确安装。查看 JupyterLab 的启动日志以定位具体错误。
计费说明
DevPod 涉及的费用主要包括:
DevPod 实例费用:底层计算资源(vCPU, 内存, GPU)的费用,按使用时长计费。停止实例可停止计费。
存储费用:挂载的 NAS 持久化存储的费用,按容量和存储类型计费。
部署服务费用:将模型部署为在线服务后,产生的计算资源和公网流量费用。
其他费用:可能涉及的容器镜像服务(ACR)企业版实例费、对象存储(OSS)费用等。