讲师:雨鸦
一、 云函数开发介绍
首先我们学习如何使用EMAS Serverless提供的云函数功能,上图是云函数开发和集成的标准流程。
首先,需要在本地用JavaScript语言开发一个云函数,然后将开发完成的云函数打包部署到EMAS Serverless控制台,并在控制台根据log日志进行云函数的调试。最后,在小程序端侧借助Serverless SDK调用上述调试完成的云函数完成业务集成。
在本地开发云函数的过程中,开发者可以使用EMAS Serverless云函数环境中提供的上下文来获取传入的参数以及日志工具。
如上图所示,整个云函数的唯一入参是EMAS Serverless云函数提供的上下文环境,这其中包含了云函数所有业务参数成员。除此之外,云函数上下文也提供了标准的日志工具,一共提供了四种级别的logger日志,分别是Info、Error、Warning和Debug。
云函数作为业务编排的单元,可以在内部轻松地集成和调用其他EMAS Serverless提供的服务或外部服务。
如上图所示,EMAS Serverless云函数的上下文对象中集成了EMAS Serverless SDK的实例对象mpserverless,开发者可以通过这个SDK的实例变量访问该云函数所在服务空间内的所有资源。除此之外,EMAS Serverless也支持外部服务集成,云函数的上下文对象中集成了一个urllib的实例对象,通过调用ctx.httpclient,即可获得这个urllib的实例来发起任意网络请求获取资源。
接下来,讲一讲在云函数中如何处理异常。关于异常的处理,开发者可以在云函数中,直接抛出异常对象。然后直接在小程序端侧可以捕获到该标准的异常对象,它的格式通常是{code:‘FunctionBizError’,message:‘some message ’}。
在电子书的第二节中,我们重点学习了EMAS Serverless资源的控制台使用。接下来,我们简要地复习一下控制台上如何部署一个云函数。
如上图所示,首先,在EMAS Serverless控制台新建或打开一个已有的云函数。然后,设置名称和运行环境等基本信息。然后,本地编写云函数,将其命名为index.js。最后将编写好的云函数打包为同云函数名称的zip文件进行部署。
接下来,我们学习一下如何在EMAS Serverless控制台中查看云函数日志。
如上图所示,我们在云函数代码中通过内置的日志工具打印一行日志,然后将其部署到控制台并运行一次该云函数。接着,我们切换到该云函数的日志标签下即可看到执行函数的运行日志。
接下来,我们介绍一下云函数的本地调试方案。开发者可以借助miniu工具,在本地调试支付宝小程序使用的EMAS Serverlesss的云函数:
第一步,通过npm指令本地全局安装miniu
npm install -g miniu
第二步,构建和组织你的云函数目录结构
—云函数项目目录
|——目标云函数目录1
|— index.js
|——目标云函数目录2
|— index.js
第三步,授权登录miniu指令,在指令执行后,浏览器会弹出一个支付宝授权登录的二维码,扫描二维码后即可完成授权
miniu login
最后一步即是调试云函数。
如上图所示,在云函数目录执行本地调试指令时,需要输入miniu cloud function local -i <小程序id> -s <服务空间id> -p <云函数项目目录名> -n <目标云函数目录名> --input <参数>。
需要强调的是,输入的参数是一个JSON字符串,并不是普通的JSON对象。这样一来,我们就可以免去繁琐的部署行为,便利快捷地调试云函数了。
接下篇: