创建沙箱模板
您可以创建新的沙箱模板,调整沙箱镜像或参数配置,创建沙箱模板时会一次完成模板创建和首次模板快照的构建。本文介绍如何创建沙箱模板。
前提条件
在使用AgentSphere前,您需要先配置访问OBS和SWR服务的VPC终端节点,详情请参见配置访问OBS/SWR服务的终端节点。
创建沙箱模板
- 登录AgentSphere控制台。
- 在左侧导航栏中选择“沙箱模板”,并单击右上角的“创建沙箱模板”。
- 填写基础配置。
参数
参数说明
沙箱模板名称
自定义沙箱模板名称。
沙箱模板名称需以小写字母开头,以小写字母或数字结尾,可以包含小写字母、数字和中划线,长度为1-48个字符。
描述
您可以添加该沙箱模板的描述信息,最多1000字符。
CPU架构
当前支持“x86计算”架构的资源。
资源配额
选择沙箱实例使用的CPU和内存,支持不同的CPU/内存配比。
您可以根据沙箱程序运行需求进行选择,资源配额过小可能导致沙箱运行失败,过大则会导致资源浪费。
选择镜像
单击“选择镜像”,选择沙箱使用的镜像,镜像数据来源于容器镜像服务(SWR)。
注意:- 仅支持使用SWR共享版的私有镜像,第三方镜像需要先上传至SWR共享版。
- 当前仅支持最大20GiB的镜像构建(由于SWR中的镜像大小经过压缩,请以docker查询镜像大小为准)。
- 构建镜像时使用的基础镜像需要支持/bin/bash命令。如果基础镜像不包含bash(例如基于Alpine等精简镜像),则需要在Dockerfile中添加安装命令将bash安装至固定路径/bin/bash。否则,在构建模板快照时如果设置了启动命令(startCmd)或就绪检查命令(readyCmd),这些命令将执行失败,e2b SDK的commands.run也会执行失败。
启动命令
沙箱实例启动时执行的命令,适用于需要指定应用入口、挂载点或端口映射等初始化场景。
命令长度为1-4096个字符。
就绪检查命令
用于检测沙箱实例是否就绪,命令长度为1-4096个字符。
环境变量
支持通过键值对的形式为沙箱运行环境设置变量,可用于把外部信息传递给沙箱中运行的程序。
您可以添加50个环境变量。
- 填写网络配置。
参数
参数说明
入站(Inbound)网关
入站网关用于接收外部请求,配置后可通过网关访问沙箱内的服务。
如果没有可选网关,请单击“新建入站网关实例”进行创建,完成创建后单击刷新按钮。
出站(Outbound)网络配置
VPC模式
沙箱实例可以访问虚拟私有云VPC内的其他服务。
- 虚拟私有云:选择一个虚拟私有云VPC。
若没有可选虚拟私有云,请单击“新建虚拟私有云”进行创建,完成创建后单击刷新按钮。操作步骤详情请参见创建虚拟私有云和子网。
- 子网:在选定的VPC下选择一个子网。
- 安全组:为沙箱实例选择安全组,支持同时选择多个安全组(此时安全组规则取并集)。
您可以单击“展开安全组规则”查看具体的“入方向规则”和“出方向规则”。
公网模式
沙箱实例可通过公网对外访问,适用于需要联网调用第三方API、下载依赖等场景。
- 虚拟私有云:选择一个虚拟私有云VPC。
- 填写存储配置。
仅当沙箱模板中的出站(Outbound)网络配置为“VPC模式”时,支持“SFS Turbo文件存储”和“OBS对象存储”配置;“托管会话存储”则无此限制。
参数
参数说明
SFS Turbo文件存储
选择是否挂载SFS Turbo文件存储,勾选后,您可以选择将指定的文件系统目录挂载至沙箱目录。SFS Turbo安全组需要放通沙箱模板选择的VPC网段。
如果没有可选文件系统,您可单击“创建文件系统”进行创建,完成创建后单击刷新按钮。相关配置说明请参见创建SFS Turbo文件系统。
您最多可以同时挂载5个存储路径(支持选择不同文件系统)。
- 存储路径:填写文件系统的存储路径,存储路径必须以/开头,且不能包含“..”。 注意:
请保证文件系统存储路径已存在,不存在时将挂载失败。
- 读写权限:为此挂载路径设置“读写”或“只读”权限。 注意:
如果要对挂载路径进行读写操作,不仅要保证沙箱开启挂载路径的读写权限,还需要保证SFS Turbo文件系统目录允许Linux用户进行读写,具体说明请参见访问文件无权限。
- 挂载路径:挂载路径必须为绝对路径,以/home、/mnt、/data、/tmp开头,且不能包含“..”。
OBS对象存储
选择是否挂载OBS对象存储,勾选后,您可以选择将指定的OBS对象存储桶目录挂载至沙箱目录。
如果没有可选对象桶,您可单击“创建OBS桶”进行创建,完成创建后单击刷新按钮。相关配置说明请参见创建桶。
注意:- 使用OBS对象存储时,沙箱镜像中需要存在/etc/passwd文件。
- 部分多AZ存储的对象桶可能挂载失败,如果需要挂载多AZ存储的对象桶,请提交工单给OBS服务并提供对象桶名称进行确认。
您最多可以同时挂载5个桶目录(支持选择不同对象桶)。
- 桶目录:填写对象桶目录。 注意:
请保证桶目录已存在,不存在时将挂载失败。
- 读写权限:支持设置“读写”或“只读”权限。
- 挂载路径:挂载路径必须为绝对路径,以/home、/mnt、/data、/tmp开头,且不能包含“..”。
托管会话存储
选择是否将Session会话进行持久化存储,通过由AgentSphere托管的存储保留Agent会话状态,开启后需填写沙箱中Session会话存储的挂载路径。
注意:使用托管会话存储时,沙箱镜像中需要存在/etc/passwd文件。
- 存储路径:填写文件系统的存储路径,存储路径必须以/开头,且不能包含“..”。
- 填写日志配置。
- 填写高级配置。
参数
参数说明
运行时信任委托
用于授予沙箱访问其他云服务的权限。创建信任委托时,信任主体类型需要选择云服务,并选择安全沙箱元数据服务。当沙箱模板中配置了OBS对象存储时,委托必须具备OBS权限。最小权限如下:
- obs:bucket:listAllMyBuckets
- obs:bucket:listBucket
- obs:bucket:headBucket
- obs:object:*
如果使用OBS加密桶,还需要补充KMS权限,详见SSE-KMS加密(KMS托管密钥)SSE-KMS加密(KMS托管密钥)。
关于创建信任委托的具体操作请参见委托其他云服务管理资源。
健康检查
探测沙箱内业务进程存活状态,以判断实例是否可用。支持选择不同的检查方式:
- HTTP请求检查:默认检查路径为ENVD的/health路径,检查端口为49983端口,协议为HTTP。
- 执行命令检查:您可以通过执行指定命令是否成功来检查业务状态。支持增加20行命令,每行命令长度为1-4096个字符。
说明:当镜像内有多个进程时,建议配置健康检查指向启动慢的进程。
构建执行步骤
构建模板快照前执行的步骤列表,支持添加3个步骤。
- 类型:构建步骤的命令类型,对应E2B Start build接口中的请求参数steps[].type。当前支持执行用户(USER)类型的命令。
- 命令参数: 构建步骤的命令参数,对应E2B Start build接口中的请求参数steps[].args。支持多行,并以数组的形式下发,每行作为一个数组元素。
- 完成上述配置后,单击“立即创建”。
相关文档
- 如果您需要管理已有模板,请参见管理沙箱模板。