文档首页 > > 最佳实践> 使用函数压缩图片> 构建程序

构建程序

分享
更新时间: 2020/04/20 GMT+08:00

本例提供了实现图片压缩功能的程序包,用户可以下载、学习使用。

创建程序包

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

图1 样例代码目录
其中index.py为函数执行的入口文件,index.py中入口函数的代码片段如下,参数“obs_output_bucket”为压缩后的图片存储地址,需要在创建函数时配置自定义参数。
def handler (event, context):
    srcBucket, srcObjName = getObsObjInfo(event)
    obs_address = context.getUserData('obs_address')
    outputBucket = context.getUserData('obs_output_bucket') 
    if obs_address is None:
        obs_address = '100.125.15.200'
    if outputBucket is None:
        outputBucket = 'casebucket-out'

    ak = context.getAccessKey()
    sk = context.getSecretKey()
    print "*** srcBucketName: " + srcBucket
    print "*** srcObjName:" + srcObjName
    print "*** obs_address: " + obs_address
    print "*** output bucket: " + outputBucket

    # download image uploaded by user from obs
    GetObject(obs_address, srcBucket, srcObjName, ak, sk)   
    outFile = image_thumbnail(srcObjName)

    # Upload the compressed image to the new OBS bucket
    PostObject (obs_address, outputBucket, outFile, ak, sk)
    return 'OK'

创建函数

创建函数的时候,必须选择委托包含OBS访问权限的委托,否则不能使用OBS服务。

  1. 用户登录公有云控制台,进入“函数工作流服务控制台>函数”界面,单击“创建函数”,进入创建函数流程。
  2. 填写函数配置信息

    1. 输入基础配置信息,如图2所示。

      函数名称输入:“fss_examples_image_thumbnail”

      所属应用选择默认的“default”。

      描述输入:“压缩图片”

      委托名称选择创建委托中创建的“serverless_trust”

      图2 基础配置
    2. 输入代码信息,如图3所示。

      运行时语音选择:“Python2.7”

      函数执行入口输入:“index.handler”

      代码选择“上传ZIP文件”,上传样例代码中的“fss_examples_image_thumbnail.zip”

      图3 代码配置
    3. 单击右侧“创建函数”,完成函数创建。

  3. 进入fss_examples_image_thumbnail函数详情页,在“配置”页签,输入环境信息,如图4所示。

    内存选择:“256”

    超时时间输入:“40”

    设置环境变量:

    键obs_output_bucket: index.py文件中定义的存放输出图片的OBS桶参数,值your-bucket-output: 创建OBS桶中创建的存放输出图片OBS桶;

    键obs_address: index.py文件中定义的存放输出图片的OBS桶的地址参数,值obs.cn-north-1.myhuaweicloud.com: 华北-北京一区域的OBS桶地址。

    图4 环境变量

    键obs_address值的格式为obs.{region}.myhuaweicloud.com,region的值,请参考地区和终端节点

  4. 单击页面右上角“保存”,保存配置信息。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问