检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用FunctionGraph函数流对图片进行压缩和打水印 本章节主要介绍如何使用函数流实现流式大文件处理。您可以根据实际业务场景来创建快速函数流实现。 背景与价值 Serverless Workflow由于自身可编排、有状态、持久化、可视化监控、异常处理、云服务集成等特性,适用于很多应用场景,比如:
步骤三:查看执行结果 单击test事件的“测试”,成功执行后,在右侧查看执行结果。 “函数返回”显示函数的返回结果。 “日志”部分显示函数执行过程中生成的日志。 “执行摘要”部分显示“日志”中的关键信息。 此页面最多显示2K日志,了解函数更多日志信息,请参考配置和查看函数的调用日志。 相关信息
使用FunctionGraph函数流对OBS中的图片进行旋转 案例概述 准备 构建程序 处理图片 父主题: 数据处理类实践
表3 请求Body参数 参数 是否必选 参数类型 描述 code_type 是 String 函数代码类型,取值有5种。 inline: UI在线编辑代码。 zip: 函数代码为zip包。 obs: 函数代码来源于obs存储。 jar: 函数代码为jar包,主要针对Java函数。 修
步骤三:查看执行结果 单击test事件的“测试”,执行后,在右侧查看执行结果。 “函数返回”显示函数的返回结果。 “日志”部分显示函数执行过程中生成的日志。 “执行摘要”部分显示“日志”中的关键信息。 图3 查看执行结果 此页面最多显示2K日志,了解函数更多日志信息,请参考配置和查看函数的调用日志。
8M内存占0.1个核(100 millicores)。 code_type String 函数代码类型,取值有5种。 inline: UI在线编辑代码。 zip: 函数代码为zip包。 obs: 函数代码来源于obs存储。 jar: 函数代码为jar包,主要针对Java函数。 Custom-Image-Swr:
分流权重。 依赖包 依赖包管理模块统一管理用户所有的依赖包,用户可以通过本地上传和obs地址的形式上传依赖包,并为依赖包命名。 函数依赖包生成示例请参考如何制作函数依赖包。 调用链 调用链跟踪、记录业务的调用过程,可视化地还原业务请求在分布式系统中的执行路径和状态,用于性能及故障快速定界。
8M内存占0.1个核(100 millicores)。 code_type String 函数代码类型,取值有5种。 inline: UI在线编辑代码。 zip: 函数代码为zip包。 obs: 函数代码来源于obs存储。 jar: 函数代码为jar包,主要针对Java函数。 Custom-Image-Swr:
设置API的后端超时时间,单位为毫秒,设置范围为1~60000毫秒。 5000 单击“确定”,完成触发器的创建。 API触发器创建完成后,会在API网关生成名为API_apig的API,单击API名称,会跳转至API网关服务。 调用函数 如图2所示复制APIG触发器的调用URL,打开任意浏览器,在地址栏中输入调用地址并访问。
计费说明 是否必须 函数工作流 FunctionGraph 函数类型:容器镜像HTTP函数 区域:华东-上海一 购买量:2(应用创建成功后自动生成函数) 计费模式:按需计费。 函数工作流提供免费试用,每月前100万次调用免费。具体计费项及说明请参考函数工作流按需计费说明。 必须。 域名注册服务
案例概述 本手册基于函数工作流服务实践所编写,用于指导您使用函数工作流服务实现为图片打水印的功能。(当前“OBS应用事件源”仅支持华北-北京四、华北-乌兰察布一、华东-上海一。) 场景介绍 将图片上传到特定的OBS桶中。 将用户上传的每个图片打水印。 将处理完后的图像上传到另一个指定的OBS桶中。
准备 创建函数及添加事件源之前,需要创建两个OBS桶,分别用来保存用户上传的图片和打水印后输出的图片。 OBS桶创建以后,需要创建委托,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到OBS资源。 创建OBS桶 注意事项 上传图片的源桶、输出图片的目标桶和函数必须处于同一个区域下。
设置API的后端超时时间,单位为毫秒,设置范围为1~60000毫秒。 5000 单击“确定”,完成触发器的创建。 API触发器创建完成后,会在API网关生成名为API_apig的API,单击API名称,会跳转至API网关服务。 调用函数 如图2所示复制APIG触发器的调用URL,打开任意浏览器,在地址栏中输入调用地址并访问。
构建程序 本例提供了为图片打水印功能的程序包,使用空白模板创建函数,用户可以下载(watermark.zip)学习使用。 创建程序包 本例使用Python语言实现为图片打水印的功能,有关函数开发的过程请参考Python函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。
开发事件函数 Python函数接口定义 FunctionGraph运行时支持Python 2.7版本、Python 3.6、Python3.9、Python3.10版本。 函数有明确的接口定义,如下所示。 def handler (event, context) 入口函数名(ha
end(body); bodyStream.pipe(busboy); } 配置函数依赖 制作依赖包。代码中选择busboy库解析上传的文件,需要生成Node.js14.18版本对应的依赖包busboy.zip。如果您使用Node.js语言其他版本,请制作对应版本的依赖包,具体请参考制作依赖包。
构建程序 本例提供一个图片旋转的样例代码供学习使用。 创建程序包 本例使用Golang语言实现图片旋转的功能,有关函数开发的过程请参考Golang函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。 图1 样例代码目录 创建函数 创建函数的时候,必须选择委托包含OB
准备 创建函数前,需要创建1个OBS桶,用来保存用户上传的图片。 OBS桶创建以后,需要创建“委托”,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到OBS资源。 创建OBS桶 上传图片的源桶和函数必须处于同一个区域下。 操作步骤 在服务控制台左侧导航栏,选择“存储
图1 credentials.csv文件内容 如果您没有登录密码,不能登录控制台,在访问密钥异常丢失或者需要重置时,可以请账号管理员在IAM中生成您的访问密钥,并发送给您。请参见:管理IAM用户访问密钥 获取Region Name,请参见:地区和终端节点。 图2 获取区域 初始化KooCLI命令行工具
案例概述 本手册基于函数流服务实践所编写,用于指导您使用函数流服务实现OBS数据处理的功能。(当前函数流暂时支持华北-北京四、华东-上海一、华东-上海二、华南-广州、亚太-新加坡。) 场景介绍 用户使用函数流编排函数方式自动化处理OBS中的数据(如视频解析、图片转码、视频截图等)。