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

本文涉及的产品
移动研发平台 EMAS,开发者版免费套餐
简介: 本文整理自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

相关文章
|
2月前
|
消息中间件 缓存 监控
在FaaS中,如何设计无状态的函数来确保数据处理的一致性?
在FaaS中,如何设计无状态的函数来确保数据处理的一致性?
|
4月前
|
运维 负载均衡 Serverless
函数计算产品使用问题之在同一地域同一时刻最多可以同时运行多少个函数实例
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2月前
|
机器学习/深度学习 监控 物联网
函数即服务(FaaS)
函数即服务(FaaS)
|
2月前
|
缓存 小程序 UED
如何利用小程序的生命周期函数实现数据的加载和更新?
如何利用小程序的生命周期函数实现数据的加载和更新?
83 4
|
2月前
|
小程序 UED 开发者
小程序的生命周期函数
小程序的生命周期函数
91 1
|
2月前
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
457 0
|
4月前
|
Serverless API 异构计算
函数计算产品使用问题之gpu实例函数该如何创建
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
缓存 前端开发 JavaScript
|
4月前
|
运维 Serverless 调度
函数计算产品使用问题之怎么在HTTP触发的函数里添加或读取自定义头部
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
存储 运维 Java
函数计算产品使用问题之怎么配置定时触发器来调用Java函数
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。

相关产品

  • 移动研发平台
  • 下一篇
    DataWorks