《五天玩转EMAS Serverless》——第四节 实战:小程序疫苗预约-云函数【上】

简介: 本文整理自EMAS Serverless讲师雨鸦,在《5天玩转EMAS Serverless训练营》的分享。本篇内容主要分为五个部分:1.云函数开发介绍2.实战:业务逻辑设计3.实战:业务逻辑实现4.实战:集成测试5.课程总结

讲师:雨鸦


一、 云函数开发介绍

image.png

首先我们学习如何使用EMAS Serverless提供的云函数功能,上图是云函数开发和集成的标准流程。

 

首先,需要在本地用JavaScript语言开发一个云函数,然后将开发完成的云函数打包部署到EMAS Serverless控制台,并在控制台根据log日志进行云函数的调试。最后在小程序端侧借助Serverless SDK调用上述调试完成的云函数完成业务集成。

 image.png

在本地开发云函数的过程中,开发者可以使用EMAS Serverless云函数环境中提供的上下文来获取传入的参数以及日志工具。

 

如上图所示,整个云函数的唯一入参是EMAS Serverless云函数提供的上下文环境,这其中包含了云函数所有业务参数成员除此之外,云函数上下文也提供了标准的日志工具,一共提供了四种级别的logger日志,分别是InfoErrorWarningDebug。

image.png

云函数作为业务编排的单元,可以在内部轻松地集成和调用其他EMAS Serverless提供的服务或外部服务

 

如上图所示,EMAS Serverless云函数的上下文对象中集成了EMAS Serverless SDK的实例对象mpserverless,开发者可以通过这个SDK的实例变量访问该云函数所在服务空间内的所有资源。除此之外,EMAS Serverless也支持外部服务集成,云函数的上下文对象中集成了一个urllib的实例对象,通过调用ctx.httpclient,即可获得这个urllib的实例来发起任意网络请求获取资源。

 image.png

接下来,讲一讲在云函数中如何处理异常。关于异常的处理,开发者可以在云函数中,直接抛出异常对象。然后直接在小程序端侧可以捕获到该标准的异常对象,它的格式通常是{code:‘FunctionBizError’,message:‘some message ’}

 image.png

在电子书的第二节中,我们重点学习了EMAS Serverless资源的控制台使用。接下来,我们简要地复习一下控制台上如何部署一个云函数。

 

如上图所示,首先,在EMAS Serverless控制台新建或打开一个已有的云函数。然后,设置名称运行环境等基本信息。然后,本地编写云函数,将其命名为index.js。最后将编写好的云函数打包为同云函数名称的zip文件进行部署。

image.png

接下来,我们学习一下如何在EMAS Serverless控制台中查看云函数日志

 

如上图所示,我们在云函数代码中通过内置的日志工具打印一行日志,然后将其部署到控制台并运行一次该云函数。接着,我们切换到该云函数的日志标签下即可看到执行函数的运行日志。

image.png

接下来,我们介绍一下云函数的本地调试方案。开发者可以借助miniu工具,在本地调试支付宝小程序使用的EMAS Serverlesss的云函数:

 

第一步,通过npm指令本地全局安装miniu

 

npm install -g miniu

 

第二步,构建和组织你的云函数目录结构

 

 云函数项目目录

|——目标云函数目录1

            |— index.js

|——目标云函数目录2

            |— index.js

 

第三步,授权登录miniu指令,在指令执行后,浏览器会弹出一个支付宝授权登录的二维码,扫描二维码后即可完成授权

miniu login


image.png

最后一步即是调试云函数

 

如上图所示,在云函数目录执行本地调试指令时,需要输入miniu cloud function local -i <小程序id> -s <服务空间id> -p <云函数项目目录名> -n <目标云函数目录名> --input <参数>

 

需要强调的是,输入的参数是一个JSON字符串,并不是普通的JSON对象。这样一来,我们就可以免去繁琐的部署行为,便利快捷地调试云函数了。

 

接下篇:

https://developer.aliyun.com/article/1224123?groupCode=emas

相关文章
|
1月前
|
人工智能 关系型数据库 Serverless
Serverless 应用引擎常见问题之生成的函数镜像改为自定义的镜像如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
27 5
|
1月前
|
小程序 容器
日程安排小程序实战教程
日程安排小程序实战教程
|
1月前
|
小程序 API
点餐小程序实战教程09-订单功能开发
点餐小程序实战教程09-订单功能开发
|
1月前
|
人工智能 关系型数据库 Serverless
Serverless 应用引擎常见问题之API生成的函数镜像改为自定义的镜像如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
39 3
|
1月前
|
关系型数据库 Serverless 分布式数据库
Serverless 应用引擎常见问题之在抖音快手小程序上使用如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
22 3
|
1月前
|
小程序 JavaScript 前端开发
点餐小程序实战教程08-购物车功能开发
点餐小程序实战教程08-购物车功能开发
|
1月前
|
小程序 算法 数据可视化
点餐小程序实战教程07-点餐功能开发
点餐小程序实战教程07-点餐功能开发
|
1月前
|
小程序 JavaScript 前端开发
点餐小程序实战教程06-首页开发
点餐小程序实战教程06-首页开发
|
1月前
|
运维 监控 Android开发
应用研发平台EMAS产品常见问题之热更新和云发布不能共存如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
缓存 运维 Android开发
应用研发平台EMAS产品常见问题之私有云部署失败如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。

相关产品

  • 移动研发平台