【serverless与微服务】初次体验华为云函数工作流FunctionGraph

【实验目的】
听说serverless与微服务服务是云计算的重要发展方向,华为云对应的明星产品包括函数工作流FunctionGraph,体验一下severless怎么用。 

【体验思路】
1、云函数的思路是有一个事件(如向对象存储存了一张照片),然后触发云函数对这张照片进行某种处理(比如照片美化),然后存放到另外一个地方去(如对象存储另一个位置或mysql数据库中)。这样的好处是,无需启用一个服务器专门等有照片上传事件,因为互联网场景下,我们不知道客户什么时候会上传照片,无需专门服务器,就是severless的通俗理解了。有照片上传了再自动处理,这是一种微服务的理念。
2、本文是体验serverless的首次体验,先熟悉一下云函数怎么操作,如何使用函数的输入参数。

【操作步骤】
1、登录华为云官网,在“产品”-“基础服务”-“计算”-“函数工作流Function Graph”,进入控制台。首次登录会提示申请体验、开通权限等操作,按照提示开通即时生效。

2、先了解一下函数的输入参数event、context的含义和用法。以python3.6为例:
https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0420.html
def handler (event, context)
入口函数名(handler):就是一个python文件包中,触发器执行的主函数,类似大家学C语言里面的main函数。
执行事件(event): 该事件的相关参数,格式为key:value这种JSON数据结构。不同事件的格式不一样,详情见下面的测试用例部分。比如是对象存储OBS触发的事件,那么会包含OBS的桶信息、文件名、所属区域等等。
上下文环境(Context):系统级公共输入参数,固定格式不可改,对应字段的获取方法可在上面的链接中获取。 比如记录了调用该函数的用户的访问密钥(AK/SK)、记录函数运行过程种的日志文件对象等等。

3、下面我们尝试一下把每个输入参数都读取处理操作一下,掌握方法。

4、创建一个函数

【serverless与微服务】初次体验华为云函数工作流FunctionGraph_第1张图片

5、设置函数的参数。“委托名称”这个概念容易理解错误。当函数需要访问云产品时,比如将照片存放到对象存储OBS其他路径,那么需要获得OBS授权,获取授权的操作,就是这里的“委托名称”。
举个生活的例子,比如我在外地工作,要委托老家的朋友去售楼部帮我买一个车位,那我需要给朋友先写好一个委托书,当车位开始售卖时,朋友拿着委托书去买车位。车位售卖==>事件触发器,朋友去买车位==>云函数,我==>要另存为的对象存储,委托书==>截图中的“委托名称”。

【serverless与微服务】初次体验华为云函数工作流FunctionGraph_第2张图片

6、编写测试用例
云函数中的用户参数(对应帮助文档中描述的event字段),格式是自定义的,符合JSON格式即可。因此和测试用例需要匹配起来。

【serverless与微服务】初次体验华为云函数工作流FunctionGraph_第3张图片

7、编写云函数,并使用上一步的测试用例,执行测试。

【serverless与微服务】初次体验华为云函数工作流FunctionGraph_第4张图片

8、查看日志中结果,符合预期。

【serverless与微服务】初次体验华为云函数工作流FunctionGraph_第5张图片

【结果】
本例中是首次接触serverless,时间有限,了解了基本操作。
下次尝试上传一个文件到对象存储,通过函数工作流自动处理后,将处理后的结果保存到对象存储另一个地址,并记录数据库。

你可能感兴趣的:(容器和微服务)