构建程序
本例提供了为图片打水印功能的程序包,使用空白模板创建函数,用户可以下载(watermark.zip)学习使用。
创建程序包
本例使用Python语言实现为图片打水印的功能,有关函数开发的过程请参考Python函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。
其中index.py为函数执行的入口文件,index.py中入口函数的代码片段如下,参数“obs_output_bucket”为打水印后的图片存储地址,需要在创建函数时配置自定义参数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
def handler(event, context): srcBucket, srcObjName = getObjInfoFromObsEvent(event) outputBucket = context.getUserData('obs_output_bucket') client = newObsClient(context) # download file uploaded by user from obs localFile = "/tmp/" + srcObjName downloadFile(client, srcBucket, srcObjName, localFile) outFileName, outFile = watermark_image(localFile, srcObjName) # 将转换后的文件上传到新的obs桶中 uploadFileToObs(client, outputBucket, outFileName, outFile) return 'OK' |
创建函数
创建函数的时候,必须选择委托包含OBS访问权限的委托,否则不能使用OBS服务。
- 登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,进入函数列表界面。
- 单击“创建函数”,进入创建函数流程。
- 选择“创建空白函数”,填写函数配置信息。
输入基础配置信息,完成后单击“创建函数”。
- 函数类型:事件函数
- 函数名称:输入您自定义的函数名称,此处以“fss_examples_image_watermark”为例。
- 委托名称:选择创建委托中创建的“serverless_trust”
- 运行时语言:选择“Python3.6”
- 进入fss_examples_image_watermark函数详情页,在“代码”页签,单击页面最底部的“添加依赖包”,添加公共依赖包“pillow-7.1.2”。
图2 添加依赖包
- 进入fss_examples_image_watermark函数详情页,配置如下信息。
- 在“代码”页签,代码选择“上传自ZIP文件”,上传样例代码watermark.zip。
- 在“设置 > 常规设置”页签,设置如下信息,完成后单击“保存”。
- 内存:选择“128”
- 执行超时时间:输入“3”
- 函数执行入口:默认“index.handler”,无需修改
- 所属应用:默认“default”
- 描述:输入“图片打水印”
- 在“设置 > 环境变量”页签,输入环境信息,完成后单击“保存”。以下截图仅供参考,在实际使用中,请根据实际情况替换。
键obs_output_bucket:为index.py文件中定义的存放输出水印图片的OBS桶参数,值hugb-bucket-output:为创建OBS桶中创建的存放输出水印图片的OBS桶。
键obs_region: OBS桶obs_output_bucket所在的Region,例如“cn-north-4”,更多Region区域详情请参见地区和终端节点。图3 添加环境变量
表1 环境变量说明 环境变量
说明
obs_region
OBS桶所属区域,此处应与函数所属区域保持一致。
obs_output_bucket
存放输出水印图片的OBS桶。