函数工作流 FunctionGraph
函数工作流 FunctionGraph
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
-
最佳实践
- FunctionGraph最佳实践汇总
- 使用函数处理DIS数据
- 函数+LTS:日志实时分析实战
- 函数+CTS:登录/登出安全分析实战
- 定时开关华为公有云虚拟机
- 使用SpringBoot构建FunctionGraph HTTP函数
- 创建使用自定义认证且后端为FunctionGraph的API
- 函数+APIG:处理文件上传
- 使用函数处理IOT数据
- 工作流+函数:自动化处理OBS中数据
- 函数+LTS:日志实时过滤
- 通过应用中心部署AI绘画Stable-Diffusion
- 使用Go构建FunctionGraph HTTP函数
- 使用FunctionGraph HTTP函数处理gRPC请求
- 函数工作流冷启动优化实践
- 开发指南
- API参考
- SDK参考
-
常见问题
-
通用问题
- FunctionGraph是什么
- 使用FunctionGraph是否需要开通计算、存储、网络等服务?
- 使用FunctionGraph开发程序之后是否需要部署?
- 如何获取Token?
- FunctionGraph函数支持哪些编程语言?
- FunctionGraph函数分配磁盘空间有多少?
- FunctionGraph函数是否支持版本控制?
- 函数中如何读写文件?
- 使用CLI工具,如何配置网络代理?
- FunctionGraph函数是否支持扩展?
- IAM子账号使用FunctionGraph需要设置哪些权限?
- 如何制作基于ODBC驱动的Python依赖包用于查询数据库?
- FunctionGraph配额
- FunctionGraph函数支持哪些中文字体?
- FunctionGraph函数如何解析DNS内网域名?
- 容器镜像函数如何解析DNS内网域名?
- 如何通过域名访问专享版APIG中注册的接口?
- 函数工作流的常见使用场景?
- 函数调用绑定在APIG的域名的服务,报域名无法解析?
- 同步函数工作流能否支持到内网最大带宽的同步传输 ?
- 单租户的VPC超过默认配额时,需要怎么做?
- 如何打印info、error、warn级别的日志?
- 函数是否可以把API的接口域名配置成自己的域名?
- 函数工作流是否支持修改运行时语言?
- 已创建的函数是否支持修改函数名称?
- 挂载文件系统时,报“failed to mount exist system path”,应如何处理?
- 如何获取上传的文件?
- 同步调用响应未收到的可能原因?
- os.system("command &")执行日志未采集,应如何处理?
- 自定义运行时,都能操作哪些目录?
- 运行时语言支持的python3.6和3.9具体指哪个版本?
- 用户想使用vpc功能,但不想配置VPC Administrator委托,应配置哪些授权项?
- 函数执行超时的可能原因有哪些?
- 如何获取函数代码?
- 是否有initializer的代码示例?
- 如何开启结构化日志查询
- 函数服务是否支持在函数中启动TCP的监听端口,通过EIP接收外部发送过来的TCP请求?
- FunctionGraph是否支持域名解析?
- 函数发起HTTP请求的源地址如何获取?
- 创建函数
- 触发器管理
- 依赖包管理
-
函数执行
- FunctionGraph函数的执行需要多长时间?
- FunctionGraph函数的执行包含了哪些过程?
- FunctiongGraph函数的并发处理过程是什么?
- FunctiongGraph函数如何处理长时间不执行的实例?
- 首次访问函数慢,如何优化?
- 怎样获取在函数运行过程中实际使用了多少内存?
- 为什么第一次请求会比较慢?
- 调用API时,报错怎么办?
- 如何读取函数的请求头?
- API同步执行函数接口,是否支持内网调用?
- 为什么函数实际使用内存大于预估内存,甚至触发OOM?
- 函数内存超限返回“runtime memory limit exceeded”,如何查看内存占用大小?
- 如何定位自定义镜像执行失败“CrashLoopBackOff”的原因?
- 用户使用相同的镜像名更新镜像,预留实例无法自动更新,会一直使用老镜像,应如何处理?
- 函数配置
- 函数访问外部资源
- 其他问题
- V1迁移V2相关问题
-
通用问题
-
更多文档
-
用户指南(阿布扎比区域)
- 产品介绍
- 快速入门
- 使用前必读
- 构建函数
- 配置函数
- 在线调试
- 配置触发器
- 调用函数
- 监控
- 函数管理
- 依赖包管理
- 预留实例管理
- 扩大资源配额
- 审计
-
常见问题
-
通用问题
- FunctionGraph是什么
- 使用FunctionGraph是否需要开通计算、存储、网络等服务?
- 使用FunctionGraph开发程序之后是否需要部署?
- FunctionGraph函数支持哪些编程语言?
- FunctionGraph函数分配磁盘空间有多少?
- FunctionGraph函数是否支持版本控制?
- 函数中如何读写文件?
- FunctionGraph函数是否支持扩展?
- IAM子帐号使用FunctionGraph需要设置哪些权限?
- 如何制作基于ODBC驱动的Python依赖包用于查询数据库?
- FunctionGraph配额
- FunctionGraph函数如何解析DNS内网域名?
- 容器镜像函数如何解析DNS内网域名?
- 如何通过域名访问专享版APIG中注册的接口?
- 函数工作流的常见使用场景?
- 函数调用绑定在APIG的域名的服务,报域名无法解析?
- 同步函数工作流能否支持到内网最大带宽的同步传输 ?
- 单租户的VPC超过默认配额时,需要怎么做?
- 如何打印info、error、warn级别的日志?
- 函数是否可以把API的接口域名配置成自己的域名?
- 函数工作流是否支持修改运行时语言?
- 已创建的函数是否支持修改函数名称?
- 挂载文件系统时,报“failed to mount exist system path”,应如何处理?
- 如何获取上传的文件?
- 同步调用响应未收到的可能原因?
- os.system("command &")执行日志未采集,应如何处理?
- 自定义运行时,都能操作哪些目录?
- 运行时语言支持的python3.6和3.9具体指哪个版本?
- 用户想使用vpc功能,但不想配置VPC Administrator委托,应配置哪些授权项?
- 函数执行超时的可能原因有哪些?
- 如何获取函数代码?
- 是否有initializer的代码示例?
- 如何开启结构化日志查询
- 函数服务是否支持在函数中启动TCP的监听端口,通过EIP接收外部发送过来的TCP请求?
- 创建函数
- 触发器管理
- 依赖包管理
-
函数执行
- FunctionGraph函数的执行需要多长时间?
- FunctionGraph函数的执行包含了哪些过程?
- FunctiongGraph函数的并发处理过程是什么?
- FunctiongGraph函数如何处理长时间不执行的实例?
- 首次访问函数慢,如何优化?
- 怎样获取在函数运行过程中实际使用了多少内存?
- 为什么第一次请求会比较慢?
- 调用API时,报错怎么办?
- 如何读取函数的请求头?
- 为什么函数实际使用内存大于预估内存,甚至触发OOM?
- 函数内存超限返回“runtime memory limit exceeded”,如何查看内存占用大小?
- 如何定位自定义镜像执行失败“CrashLoopBackOff”的原因?
- 用户使用相同的镜像名更新镜像,预留实例无法自动更新,会一直使用老镜像,应如何处理?
- 函数配置
- 函数访问外部资源
- 其他问题
-
通用问题
- API参考(阿布扎比区域)
- 开发指南(阿布扎比区域)
-
用户指南(吉隆坡区域)
- 产品介绍
- 快速入门
- 使用前必读
- 构建函数
- 配置函数
- 在线调试
- 配置触发器
- 调用函数
- 监控
- 函数管理
- 依赖包管理
- 预留实例管理
- 审计
-
常见问题
-
通用问题
- FunctionGraph是什么
- 使用FunctionGraph是否需要开通计算、存储、网络等服务?
- 使用FunctionGraph开发程序之后是否需要部署?
- FunctionGraph函数支持哪些编程语言?
- FunctionGraph函数分配磁盘空间有多少?
- FunctionGraph函数是否支持版本控制?
- 函数中如何读写文件?
- FunctionGraph函数是否支持扩展?
- IAM子账号使用FunctionGraph需要设置哪些权限?
- 如何制作基于ODBC驱动的Python依赖包用于查询数据库?
- FunctionGraph配额
- 容器镜像函数如何解析DNS内网域名?
- 如何通过域名访问专享版APIG中注册的接口?
- 函数工作流的常见使用场景?
- 函数调用绑定在APIG的域名的服务,报域名无法解析?
- 同步函数工作流能否支持到内网最大带宽的同步传输 ?
- 单租户的VPC超过默认配额时,需要怎么做?
- 如何打印info、error、warn级别的日志?
- 函数是否可以把API的接口域名配置成自己的域名?
- 函数工作流是否支持修改运行时语言?
- 已创建的函数是否支持修改函数名称?
- 挂载文件系统时,报“failed to mount exist system path”,应如何处理?
- 如何获取上传的文件?
- 同步调用响应未收到的可能原因?
- os.system("command &")执行日志未采集,应如何处理?
- 自定义运行时,都能操作哪些目录?
- 运行时语言支持的python3.6和3.9具体指哪个版本?
- 用户想使用vpc功能,但不想配置VPC Administrator委托,应配置哪些授权项?
- 函数执行超时的可能原因有哪些?
- 如何获取函数代码?
- 是否有initializer的代码示例?
- 如何开启结构化日志查询
- 函数服务是否支持在函数中启动TCP的监听端口,通过EIP接收外部发送过来的TCP请求?
- 创建函数
- 触发器管理
- 依赖包管理
-
函数执行
- FunctionGraph函数的执行需要多长时间?
- FunctionGraph函数的执行包含了哪些过程?
- FunctiongGraph函数的并发处理过程是什么?
- FunctiongGraph函数如何处理长时间不执行的实例?
- 首次访问函数慢,如何优化?
- 怎样获取在函数运行过程中实际使用了多少内存?
- 为什么第一次请求会比较慢?
- 调用API时,报错怎么办?
- 如何读取函数的请求头?
- 为什么函数实际使用内存大于预估内存,甚至触发OOM?
- 函数内存超限返回“runtime memory limit exceeded”,如何查看内存占用大小?
- 如何定位自定义镜像执行失败“CrashLoopBackOff”的原因?
- 用户使用相同的镜像名更新镜像,预留实例无法自动更新,会一直使用老镜像,应如何处理?
- 函数配置
- 函数访问外部资源
- 其他问题
-
通用问题
- 修订记录
- API参考(吉隆坡区域)
- 开发指南(吉隆坡区域)
-
用户指南(阿布扎比区域)
- 通用参考
链接复制成功!
使用ECS作为NFS服务器实现多用户资源隔离
使用ECS作为NFS服务器实现多用户资源隔离
FunctionGraph的函数实例除了支持挂载SFS弹性文件系统外,也支持挂载ECS服务器共享出来的NFS共享路径,使用ECS更便于进行多租户的资源管理。
- 购买ECS服务器,其中以下几点需要注意:
- 请注意区域选择“华东-上海一”,具体ECS的规格和镜像版本用户可以根据业务需要自行选择,此处以EulerOS 2.5 64bit(40GiB)为例,不同镜像版本的部分Linux命令略有不同,请注意区分。
图1 基础配置
- 由于很多模型文件都在1G到10G+的大小,建议您根据具体需要选择系统盘容量,或者挂载数据盘。配置好后,单击“下一步:网络配置”,进入网络配置页面。
图2 系统盘选择
- VPC、子网请选择之前步骤创建的VPC和子网。
图3 VPC和子网配置
- 安全组设置请参考以下截图,入方向规则对子网内IP网段开放111、2049、2051、2052、20048端口,用于NFS服务;其他端口如:22端口用于SSH和SFTP、21端口用于FTP等,具体请根据实际需要配置。
图4 安全组设置
- 公网IP也请您根据业务需要购买。
图5 公网IP购买
- 请注意区域选择“华东-上海一”,具体ECS的规格和镜像版本用户可以根据业务需要自行选择,此处以EulerOS 2.5 64bit(40GiB)为例,不同镜像版本的部分Linux命令略有不同,请注意区分。
- 设置NFS共享。
ECS购买完成后即可进行NFS共享设置,以下示例中以两个用户user1、user2进行介绍。
- 添加用户user1、user2并创建home目录。
useradd -m user1 && useradd -m user1
- 修改密码。
passwd user1 passwd user2
- 创建用户的共享目录,并修改共享目录操作权限为777。
mkdir /home/user1/share && chmod 777 /home/user1/share mkdir /home/user2/share && chmod 777 /home/user2/share
说明:
共享目录是用户home目录的子目录,其他用户不能操作该目录,进而保证函数挂载该目录后具有操作权限,所以权限为777不会造成越权。
- 安装NFS服务。
yum install rpcbind nfs-utils // 使用apt或其他包管理工具的镜像请使用相应的命令
- 编辑/etc/exports,写入如下内容:
/home/user1/share xx.xx.xx.xx/xx(rw) // xx.xx.xx.xx/xx请填写之前创建的子网的网段 /home/user2/share xx.xx.xx.xx/xx(rw) // xx.xx.xx.xx/xx请填写之前创建的子网的网段
- 启动NFS服务。
systemctl start rpcbind nfs
- 设置开机自启。
echo "xx.xx.xx.xx:/home/user1/share /nfs nfs4 defaults 0 0" >> /etc/fstab // IP填ECS在子网中的IP echo "xx.xx.xx.xx:/home/user2/share /nfs nfs4 defaults 0 0" >> /etc/fstab // IP填ECS在子网中的IP mount -av
- 查看共享信息,显示如下即表示创建NFS共享成功。
showmount -e xx.xx.xx.xx (此处IP地址为搭建服务器主机地址)
图6 查看共享信息
- 添加用户user1、user2并创建home目录。
应用挂载
在FunctionGraph应用中心为user1和user2分别创建一个Stable-Diffusion应用,下面以user1为例介绍,user2操作步骤相同。
- 进入user1的应用“总览”页,在“资源”列表中分别找到逻辑名称为“stable_diffusion”和“custom_models_tool”的资源,单击链接进入函数详情页面。两个函数的操作相同,此处以“stable_diffusion”函数为例。
图7 user1的函数服务
- 进入函数详情页,依次单击“设置 > 网络配置”,打开“函数访问VPC内资源”开关并配置VPC、子网,请选择与ECS相同的VPC和子网,最后单击“保存”。
图8 网络配置
- 在左侧导航栏中,选择“磁盘挂载 > 添加挂载”。
- 文件系统来源:选择“ECS”。
- 云服务器名称:选择之前创建NFS共享的ECS。
- 共享目录路径:填写“/home/user1/share”(user2的应用则填写/home/user2/share)。
- 函数访问路径:填写“/mnt/auto”。
图9 添加挂载 - 配置完成后,单击“确定”。
访问WebUI程序创建相关目录和文件
- 进入user1的应用“总览”页,单击右上角“开始使用”,耐心等待函数启动。函数会自动在挂载目录中创建应用所需目录。
- 回到user1的应用“总览”页,单击“上传模型”打开文件管理工具。
图10 文件管理工具
- 将您的模型、插件等文件分别放入对应目录。以下介绍部分主要目录,其他目录请自行查看。
- sd/models/Stable-diffusion,用于保存Stable-Diffusion checkpoint模型文件。
- sd/models/VAE,用于保存VAE文件。
- sd/models/Lora,用于保存Lora模型。
- sd/extensions,用于保存插件。
- 重新加载WebUI,即可看到新传入的模型。
图11 Checkpoints新增模型图12 LoRA新增模型
- 单击右上角“生成”,图片会自动保存到“/home/user1/share/sd/outputs/txt2img/202x-xx-xx”目录。
图13 图片保存目录
父主题: 进阶使用