更新时间:2024-11-15 GMT+08:00
分享

构建程序

本例提供了为图片打水印功能的程序包,使用空白模板创建函数,用户可以下载(watermark.zip)学习使用。

创建程序包

本例使用Python语言实现为图片打水印的功能,有关函数开发的过程请参考Python函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。

图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服务。

  1. 登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,进入函数列表界面。
  2. 单击“创建函数”,进入创建函数流程。
  3. 选择“创建空白函数”,填写函数配置信息。

    输入基础配置信息,完成后单击“创建函数”。
    • 函数类型:事件函数
    • 函数名称:输入您自定义的函数名称,此处以“fss_examples_image_watermark”为例。
    • 委托名称:选择创建委托中创建的“serverless_trust”
    • 运行时语言:选择“Python3.6”

  4. 进入fss_examples_image_watermark函数详情页,在“代码”页签,单击页面最底部的“添加依赖包”,添加公共依赖包“pillow-7.1.2”。

    图2 添加依赖包

  5. 进入fss_examples_image_watermark函数详情页,配置如下信息。

    1. 在“代码”页签,代码选择“上传自ZIP文件”,上传样例代码watermark.zip。
    2. 在“设置 > 常规设置”页签,设置如下信息,完成后单击“保存”。
      • 内存:选择“128”
      • 执行超时时间:输入“3”
      • 函数执行入口:默认“index.handler”,无需修改
      • 所属应用:默认“default”
      • 描述:输入“图片打水印”
    3. 在“设置 > 环境变量”页签,输入环境信息,完成后单击“保存”。以下截图仅供参考,在实际使用中,请根据实际情况替换。

      键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桶。

相关文档