检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
资产识别与管理 在函数的环境变量中,若有敏感信息例如账号和密码、Ak/Sk等,建议通过配置加密环境变量。不配置加密环境变量,则会在界面或API返回结果中明文展示。 在使用触发器、配置VPC访问、使用自定义镜像、挂载SFS等场景下,FunctionGraph需要与其他云服务协同工作
图片处理 当图片上传或更新至your-bucket-input桶时,会生成事件,触发函数运行,将上传图片压缩,保存在your-bucket-output中。 上传图片生成事件 登录对象存储服务控制台,进入your-bucket-input桶对象界面,上传image.jpg图片,如图1所示。
nodejs模板 exports.handler = async (event, context) => { const output = { 'statusCode': 200, 'headers': {
处理图片 当图片上传后更新至hugb-bucket-input桶时,会生成事件,触发函数运行,将上传图片打水印,保存在hugb-bucket-output中。 上传图片生成事件 登录对象存储服务控制台,进入hugb-bucket-input桶对象界面,上传image.jpg图片,如图1所示。
Node.js 开发事件函数 开发HTTP函数 nodejs模板 制作依赖包
处理图片 图片上传至your-bucket-input桶,使用工具模拟客户端触发函数流运行,将上传图片旋转180°,并以流数据返回给客户端。 上传图片 登录对象存储服务控制台,进入your-bucket-input桶对象界面,上传image.jpeg图片如图1,上传完成后如图2所示。
Node.js语言 √表示支持,×表示不支持 语言版本 是否支持 开发指导 Node.js 6.10 √ 接口定义、有关SDK接口说明和函数开发指导请参见Node.js函数开发指南。 Node.js 8.10 √ Node.js 10.16 √ Node.js 12.13 √ Node
pipe(busboy); } 配置函数依赖 制作依赖包。代码中选择busboy库解析上传的文件,需要生成Node.js14.18版本对应的依赖包busboy.zip。如果您使用Node.js语言其他版本,请制作对应版本的依赖包,具体请参考制作依赖包。 创建依赖包。在左侧导航栏“函数 >
/opt/function/runtime/nodejs8.10/rtsp/nodejs/bin/node Node.js10 /opt/function/runtime/nodejs10.16/rtsp/nodejs/bin/node Node.js12 /opt/function/runtime/nodejs12
js中定义的handler函数。 Node.js 8.10、Node.js 10.16、Node.js 12.13、Node.js14.18、Node.js16.17、Node.js18.15函数定义 Node.js 8.10、Node.js 10.16、Node.js 12.13、Node.js14.18、Node
使用函数压缩图片 案例概述 准备 构建程序 添加事件源 图片处理
创建函数及添加事件源之前,需要创建两个OBS桶,分别用来保存用户上传的图片和打水印后输出的图片。 OBS桶创建以后,需要创建委托,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到OBS资源。 创建OBS桶 注意事项 上传图片的源桶、输出图片的目标桶和函数必须处于同一个区域下。
所属应用:默认“default” 描述:输入“压缩图片” 在“设置 > 环境变量”页签,输入环境信息,完成后单击“保存”。 键output_bucket:index.py文件中定义的存放输出图片的OBS桶参数,值your-bucket-output: 创建OBS桶中创建的存放输出图片OBS桶; 键obs_endpoint:index
创建函数及添加事件源之前,需要创建两个OBS桶,分别用来保存用户上传的图片和压缩处理后的图片。 OBS桶创建以后,需要创建“委托”,给FunctionGraph函数赋权,确保FunctionGraph函数能够访问到OBS资源。 创建OBS桶 注意事项 上传图片的源桶、输出图片的目标桶和函数必须处于同一个区域下。
构建程序 本例提供了为图片打水印功能的程序包,使用空白模板创建函数,用户可以下载(watermark.zip)学习使用。 创建程序包 本例使用Python语言实现为图片打水印的功能,有关函数开发的过程请参考Python函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。
请参考依赖包管理,了解更多。 为Nodejs函数制作依赖包 需要先保证环境中已经安装了对应版本的Nodejs。 为Nodejs 8.10安装MySQL依赖包,可以执行如下命令。 npm install mysql --save 可以看到当前目录下会生成一个node_modules文件夹。
Node.js SDK使用范例 以同步执行函数为例,提供封装后的SDK。为了保证您成功使用以下示例代码,您需要先添加对应语言的SDK依赖。 表1 Node.js SDK信息说明 SDK信息 说明 安装 npm i @huaweicloud/huaweicloud-sdk-functiongraph
使用函数为图片打水印 案例概述 准备 构建程序 添加事件源 处理图片
默认即可)。 实现流程 在OBS服务中,创建两个桶。 创建函数,设置OBS应用事件源。 用户向其中一个桶上传图片。 触发函数执行,对图片进行压缩处理。 函数将处理后的图片上传到指定桶中。 完成本教程后,您的公有云账户将存在以下资源: 2个OBS桶(上传需要处理的图像和存储处理后的图像)
用户向其中一个桶上传图片。 触发函数执行,对图片打水印。 函数将处理后的图片上传到指定桶中。 完成本教程后,您的公有云账户将存在以下资源: 2个OBS桶(上传需要处理的图像和存储处理后的图像) 一个为图片打水印的函数 一个OBS应用事件源,用来关联函数和OBS桶 父主题: 使用函数为图片打水印