本文为您介绍OSS、NAS、Git代码仓库、Docker镜像和EmptyDir四种形式的存储挂载,帮助您灵活选择挂载的存储类型。
背景信息
OSS挂载
OSS挂载需要用户在EAS控制台对EAS进行一键授权,授权EAS读取用户的OSS目录,详情请参见开通并授权依赖的阿里云产品。
配置文件如下所示。
{ "name": "service_name", "storage": [ { "mount_path": "/data_oss", "oss": { "endpoint": "oss-cn-shanghai-internal.aliyuncs.com", "path": "oss://bucket/path/" } } ] }
参数说明。
参数名
含义
mount_path
挂载服务实例中的目标路径。
oss.endpoint
OSS的Endpoint地址,仅支持同区域内网地址挂载,需使用-internal地址的OSS Endpoint。
oss.path
OSS的源地址路径,需以
oss://
开头。
OSS挂载仅支持专属资源组服务,公共资源组暂时不支持。
NFS挂载
NFS挂载仅支持同地域内网地址挂载,可以使用内网NAS地址,且需要打通到NAS所在vSwitch的直连网络,资源组中网络打通请参见配置网络连通。
配置文件如下所示。
{ "name": "service_name", "storage": [ { "mount_path": "/data_nas", "nfs": { "path": "/", "readOnly": false, "server": "xxx.cn-shanghai.nas.aliyuncs.com" } } ] }
参数说明。
参数名
含义
mount_path
挂载服务实例中的目标路径。
nfs.path
需要挂载的NAS中的源路径。
nfs.readOnly
是否以只读的方式挂载。
nfs.server
NAS挂载点的地址。
Git代码仓库挂载
Git代码仓库挂载可以将一个Git仓库中的代码以只读的方式直接挂载到服务实例中,在实例启动阶段会对代码进行拉取。目前不会实时同步最新代码,如果代码仓库中的代码发生变更,需要重启服务实例才能生效。
配置文件如下所示。
{ "name": "service_name", "storage": [ { "mount_path": "/data_git", "git": { "repo": "https://codeup.aliyun.com/xxx/eas/aitest.git", "username": "username", "password": "password or access token" } } ] }
参数说明。
参数名
是否必选
含义
mount_path
是
挂载服务实例中的目标路径。
git.repo
是
需要挂载的Git仓库的HTTPS地址。暂不支持Git协议。
git.username
否
私有Git仓库的登录用户名。
git.password
否
私有Git仓库的登录密码。
git.branch
否
需要拉取的Git仓库的分支,默认为master。
git.commit
否
需要拉取的Git仓库的commit ID。
镜像挂载
Docker Image的方式挂载并非直接将镜像中的目录直接挂载到服务实例中,而是通过Shared Volume先将要挂载的镜像中的指定目录中的文件拷贝至本地Shared Volume中,在服务运行时挂载本地的Shared Volume,因此当要挂载的目录中数据量较大时,会消耗较多的本地存储,且会使服务实例启动时间加长,请根据需要来使用该功能。
{ "name": "service_name", "storage": [ { "image": { "image": "registry-vpc.cn-shanghai.aliyuncs.com/eas/test_image:v1", "path": "/path/to/mount/" }, "mount_path": "/data_image" } ] }
说明仅支持同区域内网地址挂载,如要挂载的镜像是private的时,需通过dockerAuth参数来指定镜像仓库的鉴权信息。镜像部署中关于dockerAuth参数的使用说明,请参见服务部署:自定义镜像。
参数说明。
参数名
含义
mount_path
挂载服务实例中的目标路径。
image.image
需要挂载的内网镜像仓库地址。
image.path
需要挂载到服务实例中的镜像中的路径。
EmptyDir挂载
如果您希望实例运行时读写本地磁盘目录,且实例异常重启后写入的内容不会丢失,则可以使用EmptyDir的存储挂载方式。
配置文件如下所示。
{ "name": "service_name", "storage": [ { "empty_dir": {}, "mount_path": "/data_image" } ] }
参数说明。
参数名
含义
mount_path
挂载服务实例中的目标路径。
empty_dir
表示类型为EmptyDir、值为空的Map。暂不支持其他属性的配置。
配置共享内存
您可以使用以下配置文件来配置共享内存。
{
"name": "service_name",
"storage": [
{
"empty_dir": {
"medium": "memory",
"size_limit": 20
},
"mount_path": "/dev/shm"
}
]
}
其中:
medium:指定为memory。
mount_path:指定为
/dev/shm
。size_limit:用来限制内存上限,单位为GB。
完整配置示例
OSS、NFS、Git代码仓库、镜像及EmptyDir挂载,完整配置示例如下所示。
{
"name": "service_name",
"model_path": "http://path/to/model",
"processor": "pmml",
"storage": [
{
"mount_path": "/data_oss1",
"oss": {
"endpoint": "oss-cn-shanghai-internal.aliyuncs.com",
"path": "oss://bucket1/path/"
}
},
{
"mount_path": "/data_oss2",
"oss": {
"endpoint": "oss-cn-shanghai-internal.aliyuncs.com",
"path": "oss://bucket2/path/"
}
},
{
"mount_path": "/data_nfs1",
"nfs": {
"path": "/",
"readOnly": false,
"server": "xxx.cn-shanghai.nas.aliyuncs.com"
}
},
{
"mount_path": "/data_nfs2",
"nfs": {
"path": "/",
"readOnly": true,
"server": "yyy.cn-shanghai.nas.aliyuncs.com"
}
},
{
"image": {
"image": "registry-vpc.cn-shanghai.aliyuncs.com/eas/test_image:v1",
"path": "/path/to/mount/"
},
"mount_path": "/data_image"
},
{
"empty_dir": {
"medium": "memory",
"size_limit": 20
},
"mount_path": "/dev/shm"
},
{
"mount_path": "/data_git",
"git": {
"repo": "https://codeup.aliyun.com/xxx/eas/aitest.git",
"username": "username",
"password": "password or access token"
}
}
],
"metadata": {
"cpu": 1,
"instance": 1,
"resource": "eas-r-xxx"
}
}