检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
进阶使用:使用ECS作为NFS服务器实现多用户资源隔离 应用场景 FunctionGraph的函数除了支持挂载弹性文件系统SFS外,也支持挂载ECS服务器共享出的NFS共享路径。在多用户使用场景下,使用ECS能够有效地进行多用户的资源管理,通过配置特定的权限,满足用户之间需要强隔离的使用需求。
进阶使用:使用ECS作为NFS服务器实现多用户资源隔离 应用场景 FunctionGraph的函数除了支持挂载弹性文件系统SFS外,也支持挂载ECS服务器共享出的NFS共享路径。在多用户使用场景下,使用ECS能够有效地进行多用户的资源管理,通过配置特定的权限,满足用户之间需要强隔离的使用需求。
FunctionGraph目前支持的编程语言,如表1所示。 表1 支持的编程语言和版本 语言 支持版本 Python 2.7、3.6、3.9、3.10 Node.js 6.10、8.10、10.16、12.13、14.18、16.17、18.15 Java 8、11、17(当前仅支持华北-乌兰察布二零二)
域敬请期待! 函数使用流程 图2介绍使用FunctionGraph函数实现业务需求的流程。 图2 FunctionGraph使用流程 涉及的配置项说明如下: 编写代码 用户编写业务代码,目前支持Node.js、Python、Java、Go、C#、PHP、Cangjie和定制运行时语言,详情请参见开发指南。
进阶使用:使用ECS作为NFS服务器实现多用户资源隔离 应用场景 FunctionGraph的函数除了支持挂载弹性文件系统SFS外,也支持挂载ECS服务器共享出的NFS共享路径。在多用户使用场景下,使用ECS能够有效地进行多用户的资源管理,通过配置特定的权限,满足用户之间需要强隔离的使用需求。
进阶使用:通过挂载同一SFS文件系统实现多用户资源共享 应用场景 模型文件普遍占用大量内存,在多用户使用场景下,每个用户复制一份模型文件会导致不必要的存储空间浪费。通过将不同用户的应用挂载到同一SFS文件系统下,能够满足多人共享模型文件资源的需求,同时为了避免不同用户使用期间的推理结果相互影响,可以在Stable
- s3:ObjectCreated:Put - s3:ObjectCreated:Post // index.js exports.first = async (event, context) => { const response = {
handler memorySize: 128 timeout: 30 runtime: Node.js14.18 package: default codeType: zip code:
务,则不用提供委托名称。 运行时:选择用来编写函数的语言,默认“Node.js 16.17”,支持用户选择其他运行时语言。 图1 基本信息配置 配置代码源,复制如下代码至代码窗,单击“部署”。 样例代码实现的功能是:获取测试事件,打印测试事件信息。 exports.handler
handler属性应该是您在入口文件中导出的函数名称。 例如,当您导出函数并以index.js中的handler命名时,您的handler应该是handler: index.handler。 // index.js exports.handler = (event, context, callback)
为函数配置预留实例 FunctionGraph提供了按量和预留两种类型的实例。 按量实例是由FunctionGraph根据用户使用函数的实际情况来创建和释放,当FunctionGraph收到函数的调用请求时,自动为此请求分配执行环境。 预留实例是将函数实例的创建和释放交由用户管理
Invoke,进行调试。 图4 单击Local Debug 图5 配置事件内容 VSCode自带调试能力 在函数文件夹下新建main.js文件,并将下面内容复制到main.js文件,单击左侧的运行和调试图标,选择添加配置,进行配置,选择Nodejs,按“F5”进行调试。 const handler
请参考表1查看所使用的运行时支持的直接上传代码文件类型。 表1 直接上传代码支持的文件类型 运行时 上传ZIP文件 上传JAR文件 说明 Node.js 支持 不支持 - Python 支持 不支持 用python语言编写代码时,自己创建的依赖包名不能与python标准库同名,否则会提示m
用户将图片上传到特定的OBS桶中。 函数流编排函数算子,实现下载OBS中数据进行图片转码,并以流的形式返回给客户端。 保证函数和OBS桶在一个区域(区域都选择默认即可)。 实现流程 在OBS服务中,创建1个桶。 用户向OBS桶上传图片。 创建函数。 创建函数流,编排函数。 触发函数流执行,对图片进行转码处理。
用户可以下载(watermark.zip)学习使用。 创建程序包 本例使用Python语言实现为图片打水印的功能,有关函数开发的过程请参考Python函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。 图1 样例代码目录 其中index.py为函数执行的入口文件,index
first: # Function name handler: index.http # Reference to file index.js & exported function 'http' events: - apigw: env_id:
构建程序 本例提供一个图片旋转的样例代码供学习使用。 创建程序包 本例使用Golang语言实现图片旋转的功能,有关函数开发的过程请参考Golang函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。 图1 样例代码目录 创建函数 创建函数的时候,必须选择委托包含OB
对象名前缀 可选参数。 用来限制以此关键字开头的对象的事件通知,该限制可以实现对OBS对象名的过滤。 保持默认,不填写。 对象名后缀 可选参数。 用来限制以此关键字结尾的对象的事件通知,该限制可以实现对OBS对象名的过滤。 保持默认,不填写。 对象名编码 必选参数。 选择是否对对象名进行编码。
超过单实例并发处理能力时会自动扩容新实例。 表1 单并发与多并发对比 对比项 单实例单并发 单实例多并发 日志打印 不涉及。 Node.js使用console.info()函数,Python使用print()函数,Java使用System.out.println()函数打印日志,该方式会把当前请求的Request
er部分(这里需要使用绝对路径)。结果应该类似于如下: provider: name: huawei runtime: Node.js14.18 credentials: ~/.fg/credentials 父主题: 使用指南