初识 EMAS Serverless|学习笔记

简介: 快速学习初识 EMAS Serverless。

开发者学堂课程【玩转EMAS Serverless精品课-疫苗预约小程序初识 EMAS Serverless】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/926/detail/14575


初识EMAS Serverless


内容介绍:

一、EMAs Serverless 使用场景

二、EMAS Serverless 产品能力

三、控制台功能演示

四、运行一个云函数

五、小程序 Deme 演示

六、云数据库

该课程适用人群有:计算机科学、软件工程等领域的软件工程师和大学生、尝试使用 Serverless 技术的小程序开发者、前、后端工程师、全栈工程师、探索 Serverless 的技术管理者。

一、EMAs Serverless 使用场景

开发小程序时,一般会涉及到数据存储、后端接口服务等等,这些都需要去开发。

图片1.png

1.EMAs Serverless 的特点

(1)面向多端

EMAs Serverless 面向多端小程序场景提供服务

(2)无需运维

全托管服务,将您从基础设施的管理工作中解放,专注业务领域创新

(3)弹性伸缩

实时弹性伸缩和动态负载均衡,轻松应对突发流量

2.举个例子

图片2.png

当你想要开发一个小程序的时候,不仅要写前端代码,还要开发服务器、对象存储、数据库、内容分发、日志、负载均衡等等。

当你使用了EMAS Serverless服务,面对开发小程序的多端场景。对服务器、OSS 等基础设施进行 API 的抽象封装,可以认为 EMAS Serverless = FaaS t+Baas 。FaaS 是函数计算,也就是云函数,Baas 是后端服务,也就是同时提供数据存储、文件存储等等一整套后端服务。

图片3.png

EMAS Serverless 提供包括云函数、数据存储.文件存储等一整套后端服务。计算资源作为服务而不是服务器的概念出现。开发者不需要关心服务器或底层运维设施,可以更专注于代码和业务本身。


二、EMAS Serverless 产品能力

应用层包括支付宝小程序、钉钉小程序、微信小程序和 HS/Wsb 应用等,通过统一的 SDK 接入,就可以使用云函数、云数据库、云存储和静态网站托管等能力。这些能力层都对用户开放,开发者可以通过 SDK 来接入这些能力。这些能力都是对资源层的抽象封装和接入实现的。

图片4.png


三、控制台功能演示

简单浏览控制台:

打开阿里云官网,搜索小程序云,可以看到:

图片5.png

1.点击控制台,可以看到服务空间管理:

图片6.png

一个服务空间就包含了一个运营环境,包含能力层的基本单位。

进入服务空间,这里选择 EMAS 2022,可以看到该服务空间的函数列表:

图片7.png

每个函数可以进行发布管理、日志查询、基本信息修改和函数的触发配置的功能:

图片8.png

2.打开云数据库的控制台:

图片9.png

可以新建一张数据表,对新数据表进行管理:

图片10.png

云数据库中的表叫做集合,相当于关系型数据库中的一张表等于云数据库中的一个集合,每个集合中有数据记录。

另外的功能有添加索引,对每张表的权限进行精细化的管理;数据回档的功能,可以将数据回档到任意一个时间点。

3.打开云存储的控制台:

图片11.png

云存储控制台包含上传文件,集成小程序 SDK 后,可以通过小程序上传文件。

还可以对权限进行管理:

图片12.png

打开静态网站托管的控制台:

图片13.png

开通完成静态网站后,可以上传静态网站的文件。

还有加速运营的功能,静态网站开发完成后,可以自定义其加速域名:

图片14.png

域名通过审核后,再通过自定义的域名去访问,会得到运营的加速。

4.云函数工作原理

图片15.png

5.用户操作:

开发人员编写业务代码,然后将业务代码打包上传至云函数的控制台。

小程序用户可以通过两种方式运营该云函数,一是通过集成 EMAS Serverless SDK 调用该云函数,云函数的运行结果返回,二是通过配置 HTTP 触发功能,通过 http 协议来调用云函数,最后还可以通过定时触发配置。当云函数跑起来后,会通过日志收集系统得知函数运行的结果及产生的中间日志。

6.云函数执行过程

图片16.png

假设前端传入第一个请求,先会有一个系统冷启动的阶段,该阶段主要包括后端调度实例(调度一个容器服务)、将代码下载并解压和启动该实例。实例完成冷启动后进入运行阶段,首先运行一个初始化环函数,初始化函数运行完成后开始执行 Initializer 函数(主入口),当该函数运行完成后会进入实例的释放时间。假设在实例释放时间有第二个请求进入,这时不需要重新从冷启动开始的流程,而是直接进入执行函数的阶段,当第二个请求也执行完毕后,也进入实例释放时间。实例释放结束后,该实例会被回收,这时第三个请求进入,由于实例已经释放,所以会从系统冷启动开始。(冷启动优化到毫秒级)


四、运行一个云函数

1.新建一个云函数(求两数之和):

运行环境选择 Node js 12

云函数创建完成,点击管理:

图片17.png

2.上传代码包:

由于该函数较简单,可以写一个:

首先做一个函数包的封装

传入一个 const 参数,下面是运行函数的上下文,可以使用提供的日志路口、日志打印。

module.exports=async(ctx)=>{

}

代码如下:

module.exports=async(ctx)=>{

const num1=ctx.args.num1

const num2=ctx.args.num2

return num1+num2

}

封装好后命名:

图片18.png

压缩该文件后上传代码包,再点击部署:

图片19.png

部署成功后运行该云函数

执行{“num1”,123,”num2”,124}

得到执行结果:

图片20.png

可以看到该函数留下的日志:

图片21.png


五、小程序 Deme 演示

打开支付宝小程序开发工具

包含小程序的项目目录:

主要包含 pages 目录和 app.js 文件。

app.js 文件是小程序的路口

pages 包含了小程序的每个页面,会在 pages 下创建目录

app.js 文件介绍:

app.js 文件主要做了 Serverless 的SDK ,提供了一个对象,将该对象初始化后传入一些初始化参数,该部分在第二节会细讲。

完成配置后,看到 index.xml 页面:

该页面包括:

一行文本,两个 input (接收用户输入的两个数),一个 button (让用户点击后调用 involefunction 方法),text 展示运行结果。

现在看云函数是如何调用的:

先将得到输入框的两个值,然后使用 SDK 提供的方法 my.serverless.function.invoke ,其接收两个参数,一个是函数名,函数名为 twoNumberSum,另一个是入参体。运行该函数,将结果放入 res,同时 res.result 将其值取出赋给 num1+num2 的结果。

代码如下:

async invokeFunction (){

const num1 =Number(this,data.num1)

const num2 =Number(this,data.num2)

const res=await my.serverless.function.invoke(‘twoNumber’,{num1,num2})

this.setData{

result:num1+’+’num2+’=’+res,result

})

}

运行:

图片22.png

在运行 demo 时,可以打开调试器,打开 natwork 页码,可以看到运行过程发生了什么:

图片23.png

运行后:

图片24.png

可以看到发起的一条请求,点击打开查看:

response 是云函数返回给开发者的结果

下面可以看到 data 就是返回给用户的结果。

图片25.png


六、云数据库

云数据库提供的是一种文档数据库,如果使用过 Mongo ,那么可以直接用云数据库。

接下来创建一张数据表 test 存放一些数据:

图片26.png

手动添加一条记录:

图片27.png

添加完成后发现该数据表自动生成 id :  

(每一个记录都有一个组件,可以理解为关系型数据中的一个组件)

图片28.png

如何在小程序端进行数据的读写:

以上一次演示为例,要将运行结果存到数据库要如何操作:

首先使用 Serverless 下的 db 对象,然后选中操作哪一个集合(这里是 test 集合),对该集合插入一条数据

然后组建该数据,将 num1 和num2 和运行结果(result)放入

重要代码如下:

async invokeFunction(){

const num1=Number(this.data.num1)

const num2=Number(this.data.num2)

const res =await my.serverless.function.invoke{‘twoNumberSum,{num1,num2}}

this.setData({

result=num1+’+’+num2+’=’+res.result

})

const result=res.result

await my.serverless.db.collection {‘test’},insertOne({num1,num2,result})

},

运行结果:

图片29.png    

打开调试器,发现数据插入失败:

图片30.png

回到控制台

失败原因是因为数据表提供了权限管理功能,仅管理员可写,所以写入数据失败:

图片31.png

修改权限为所有用户可写:

图片32.png

然后再进行演示

云函数运行结果:

图片33.png

调试器:

调用原函数的请求:

图片34.png

调用数据库的请求:

图片35.png

从图中可知,改动了一条数据,数据插入成功,并返回组件。

回到控制台验证,点击刷新:

图片36.png

看到数据写入该表

注意:

跑小程序 demo 时,要下载小程序开发的 id,注册小程序开发者账号并创建一个小程序,要将 app.js 中的参数改为自己的服务空间、appId 改为自己的支付宝小程序的 id 、spaceId 和 clientSecret 改为自己创建的服务空间的信息。

该信息在控制台,选中自己的开发环境,点击查看可以看到信息。

相关文章
|
缓存 前端开发 JavaScript
|
Serverless PyTorch 文件存储
EMAS Serverless文件存储问题之上传视频真机报错如何解决
在进行Serverless应用开发和部署时,开发者可能会遇到不同类型的报错信息;本合集着重收录了Serverless环境中常见的报错问题及其解决策略,以助于开发者迅速诊断和解决问题,保证服务的连续性和可用性。
572 1
|
存储 小程序 IDE
EMAS Serverless搭建《私人云相册》小程序
基于EMAS Serverless的云函数、云数据库、云存储等云服务能力一站式快速开发一个小程序。
EMAS Serverless搭建《私人云相册》小程序
|
开发框架 Serverless 文件存储
EMAS Serverless文件存储的uploadFile方法
EMAS Serverless文件存储的uploadFile方法
282 1
|
机器学习/深度学习 运维 Java
EMAS Serverless
EMAS Serverless 是阿里云移动应用服务 (Mobile Application Service) 提供的一种无需管理服务器的云服务,可以帮助开发者更轻松地构建和部署移动应用后端服务。使用 EMAS Serverless,开发者可以将业务逻辑以函数的形式上传到云端,由阿里云自动承担运维和调度等工作,从而降低了应用开发和运维的成本。
469 1
|
3月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
506 30
|
4月前
|
存储 人工智能 Serverless
函数计算进化之路:AI 应用运行时的状态剖析
AI应用正从“请求-响应”迈向“对话式智能体”,推动Serverless架构向“会话原生”演进。阿里云函数计算引领云上 AI 应用 Serverless 运行时技术创新,实现性能、隔离与成本平衡,开启Serverless AI新范式。
532 12
|
9月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
969 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
7月前
|
存储 编解码 Serverless
Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
368 0
|
9月前
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
770 30

相关产品

  • 函数计算