基于OBS Data+ 框架调用全网云服务能力
引导式阅读
Others
基于OBS Data+ 框架调用全网云服务能力
作者
HDC.Cloud
上架时间
2020-01-11 08:59:58

ZIP自动解压Lambda函数应用开发

您在体验过程中有任何疑问,都可以在此留言反馈>>问题反馈

1. 介绍

什么是ZIP自动解压Lambda函数应用?

基于华为云OBS服务和FunctionGraph服务开发Lambda函数应用,ZIP自动解压提供了云侧服务和SDK相关代码,可以帮助开发者快速构建应用,以便应用可以对用户上传到OBS的ZIP文件实现自动解压。

您将建立什么?

在本次Codelabs中,您将创建一个能够具备使用华为云帐号登陆的账户,您的Lambda函数应用程序将包含:

  • 解析OBS 事件通知JSON消息

  • 具备ZIP文件流式解压

  • 具备解压文件上传到OBS桶

您将学会到什么

  • 如何基于OBS和FunctionGraph快速开发出Lambda函数。

您需要什么?

开发环境及技能要求:

  • 您需要搭建一套完整的Golang开发环境。

  • 熟悉Golang

  • 参考帐号注册认证注册成为开发者。

运行终端要求:

  • 必须为Golang 1.8.3版本。

2. 能力接入准备

开发ZIP自动解压Lambda函数服务,需要完成以下准备工作

  • 创建Golang工程

  • 下载OBS SDK,FunctionGraph SDK

具体操作,请按照《Go函数开发指南》中详细说明来完成。

https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0440.html

3. 配置您的开发环境

下载Golang 1.8.3

  1. 在Golang官网下载1.8.3版本(https://dl.google.com/go/go1.8.3.linux-amd64.tar.gz)。

  2. 解压Golang,并配置GOROOT环境变量。

  3. 导入开发工程

集成SDK

针对Golang开发环境,华为提供了Golang的SDK包,开发前需集成SDK到您的工程中。

4. Lambda函数开发

步骤1 解析OBS 事件JSON。

var eventMsg notification.NotiOBSMessages; err := json.Unmarshal(payload, &eventMsg);

步骤2 开发ZIP解压功能。

// ZipDecompress 解压ZIP文件 func ZipDecompress(ctx context.RuntimeContext, unCompress Archive) (int, error) { }

5. 打包

  1. 运行Lamdba工程生成动态链接库so文件。
[root@server-1812211544 go-runtime]\# pwd /home/fssgo/src/go-runtime [root@server-1812211544 go-runtime]\# go build --buildmode=plugin -o testplugin.so test.go [root@server-1812211544 go-runtime]\# zip fss_examples_go1.8.zip testplugin.so

6. 上传Lambda函数

步骤1 选择华为帐号登录后,创建OBS桶。

步骤2 在FunctionGraph 控制台中创建Lambda函数。

步骤3 在FunctionGraph 控制台中为Lambda函数配置OBS触发器。

步骤4 在FunctionGraph 控制台中设置Lambda函数配置。

创建委托,选择委托FunctionGraph服务有OBS Operator角色权限

设置函数配置

7. 测试

通过OBS Browser+上传一个ZIP文件到测试桶中。观察ZIP文件是否被自动解压

8. 恭喜你

祝贺您,您已经成功地构建了您的第一个OBS Data+的Lambda函数应用程序,并学到了:

  • 如何使用OBS SDK以及FunctionGraph服务构建Lambda函数应用程序。

9. 参与互动赢好礼

完成体验,参与互动赢取精美礼品。</br> 闯关有礼

10. 参考文件