快速上手阿里云EMAS Serverless 开发小程序

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 本文经过阅读《五天玩转 EMAS Serverless》和官方文档整理而成。不得不说,前者是一本优秀的技术小册子,写得通俗易懂。EMAS Serverless 也是一个十分优秀的平台,不仅好用,每月还有免费的额度,十分适合还不熟悉 serverless 的朋友们上手体验。

EMAS Serverless

什么是 EMAS

阿里巴巴应用研发平台(Enterprise Mobile Application Studio,简称EMAS),是面向全端场景(移动App、H5应用、小程序、Web应用、PC应用等)的一站式应用研发平台。EMAS基于广泛的云原生技术(Backend as a Service、Serverless、DevOps、低代码等),致力于为企业、开发者提供一站式的应用研发运营管理服务,涵盖开发、测试、运维、运营等应用全生命周期。

什么是 Serverless

Serverless 是近些年比较火热的一种开发模式。从字面看,它是无服务的意思。但它所表达的意思其实是“不需要过度专注服务器”。也就是说,开发者只需专注于业务实现,像搭建服务器环境,代码部署,服务器扩容等等传统运维的工作,直接交给 Serverless 来做就好了。

对于小程序开发的需求,Serverless 的开发模式非常适合前端开发人员去使用。

什么是 EMAS Serverless

阿里云 EMAS Serverless 是面向小程序开发场景的一套完整的后端服务,它提供了云函数云数据库云存储等基本功能,开发者仅需要在项目中集成 SDK,调用简单的 API 就能完成小程序后端服务的开发。

EMAS Serverless 的云函数使用 NodeJS 作为运行环境。对于前端开发人员来说,基本没有学习成本,可以快速上手。开发者可以将代码打包提交到云端,无需搭建运维服务器。云函数自动完成机器调度与函数部署,弹性扩容,按量收费,轻松应对突发流量。

云数据库基于 MongoDB 文档型数据库,数据以 JSON 格式存储。数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据中的表)。

云存储支持将文本、图片、视频等文件存储到云端。开发者可以在小程序端和控制台使用云存储功能。资源上传成功后,系统会自动生成一个资源链接并返回给小程序端,以供使用。

EMAS Serverless 对基础设施进行抽象封装。

EMAS Serverless = FaaS + BaaS。FaaS 是函数即服务,BaaS 是后端即服务。在这种抽象下,计算资源作为服务而不是服务器。开发者不需要关心服务器或者是底层的运维设施,可以更加关注业务和代码本身。

EMAS Serverless 适合人群

无论是前端工程师,后端工程师,全栈工程师,只要需要开发基于 serverless 的小程序,都可以选择使用EMAS Serverless。

EMAS Serverless 的特点

主要有三个特点:

  1. 面向多端,EMAS Serverless 面向多端小程序场景提供服务。
  2. 无需运维,全托管服务将您从基础设施的管理工作中解放,专注业务领域创新。
  3. 弹性伸缩,实时弹性伸缩和动态负载均衡,轻松应对突发流量。

EMAS Serverless的产品功能架构图

Serverless SDK 介绍

通过安装 EMAS Serverless SDK,可以方便地在小程序中使用 EMAS Serverless 服务。

以支付宝小程序为例,需要先开通 EMAS 服务,然后本地下载并安装好开发者工具,使用开发者工具创建一个小程序项目。切换到项目根目录,安装 SDK

npm i @alicloud/mpserverless-sdk

然后,在项目配置文件 mini.project.json 中,添加以下配置信息。

{
    "enableNodeModuleBabelTransform": true,
    "node_modules_es6_whitelist": [ 
        "@alicloud/mpserverless-sdk"
    ]
}

最后,构造实例对象 mpserverless 并完成 SDK 的初始化:

// app.js
import MPServerless from '@alicloud/mpserverless-sdk'

const mpserverless = new MPServerless(my, {
    appId: '小程序 AppID',
    spaceId: '服务空间 SpaceId',
    clientSecret: '服务空间 Secret',
    endpoint: '服务空间 API Endpoint'
});

App({
    mpserverless: mpserverless,
    onLaunch() {
        mpserverless.init();
    },
});

之后就能在小程序代码中愉快地使用 EMAS Serverless 的服务了。

云函数的使用

使用云函数的步骤是,先在本地开发完成一个云函数,然后将其部署到 serverless 平台,然后在小程序代码中通过 SDK 提供的特定方法去调用云函数。

开发云函数

以一个简单的 hello 程序为例:

// hello/index.js

'use strict';

module.exports = async (ctx) => {
  let message = 'hello';
  console.log(message);
  return message;
}

将其打包成一个 hello.zip 压缩包,然后上传到平台:

image-20220823231852856

上传完成之后点击部署:

image-20220823232035192

测试:

image-20220823232357391

在小程序中调用云函数的方式:

const { result } = await mpserverless.function.invoke();
console.log(result);  // 'hello'

云数据库的使用

云数据库的使用也分为两步,先在控制台创建一个集合,用于存放数据;再在云函数中编写操作云数据库的逻辑,然后在小程序代码中调用云函数。

云数据库功能群接口较多,对应了十几个功能。不仅包括基础的增删改查,也包括了 MongoDB 中去重、聚合等高级操作。

image-20220823232703970

以一个简单的查询为例:

module.exports = async (ctx) => {
    let res = await mpserverless.db.collection('users').find({
      age: { $gt: 18 }
    })
    
    return { users: res }
}

云存储的使用

云存储主要提供了两个方法:

  • uploadFile:上传文件
  • deleteFile:删除文件

以在小程序中上传一张相册中的图片为例:

my.chooseImage({
    chooseImage: 1,
    success: res => {
        const path = res.apFilePaths[0];
        const options = {
            filePath: path,
        };

        mpserverless.file.uploadFile(options)
        .then(res => { 
            console.log(res);  
        })
        .catch(err => {  
            console.log(err);
        });
    }
});

SDK 会将文件上传至云存储,并将文件的 URL 返回给小程序端使用。

小结

本文经过阅读《五天玩转 EMAS Serverless》和官方文档整理而成。不得不说,前者是一本优秀的技术小册子,写得通俗易懂。EMAS Serverless 也是一个十分优秀的平台,不仅好用,每月还有免费的额度,十分适合还不熟悉 serverless 的朋友们上手体验。

目录
相关文章
|
2月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
149 13
|
2月前
|
存储 人工智能 运维
正式收官!阿里云函数计算携手优酷,用 AI 重塑影视 IP 创新边界
近日,阿里云联合优酷发起的 Create@影视 IP x AI 应用创新大赛,将网剧《少年白马醉春风》这一热门影视 IP 与阿里云 AI 技术相结合,由阿里云函数计算提供 AIGC 技术支持参赛者基于网剧《少年白马醉春风》IP 或“少年江湖”精神内核,用 AI 生成角色场景设计、手办设计、破次元合照、数字人等多样化的作品。
120 10
|
30天前
|
人工智能 弹性计算 运维
触手可及:阿里云函数计算助力AI大模型的评测
阿里云推出的面向AI服务器的功能计算(Functional Computing, FC),专为AI应用提供弹性计算资源。该服务支持无服务器部署、自动资源管理和多语言支持,极大简化了AI应用的开发和维护。本文全面评测了FC for AI Server的功能特性、使用体验和成本效益,展示了其在高效部署、成本控制和安全性方面的优势,并通过具体应用案例和改进建议,展望了其未来发展方向。
130 4
|
2月前
|
SQL 分布式计算 Serverless
阿里云 EMR Serverless Spark 版正式开启商业化
阿里云 EMR Serverless Spark 版正式开启商业化,内置 Fusion Engine,100% 兼容开源 Spark 编程接口,相比于开源 Spark 性能提升300%;提供 Notebook 及 SQL 开发、调试、发布、调度、监控诊断等一站式数据开发体验!
147 3
阿里云 EMR Serverless Spark 版正式开启商业化
|
2月前
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
399 16
|
2月前
|
人工智能 运维 大数据
阿里云“触手可及,函数计算玩转 AI 大模型”解决方案评测报告
阿里云“触手可及,函数计算玩转 AI 大模型”解决方案评测报告
97 2
|
2月前
|
缓存 前端开发 JavaScript
|
运维 Cloud Native 关系型数据库
活动回顾|阿里云 Serverless 技术实战与创新成都站回放&PPT下载
7月29日“阿里云 Serverless 技术实战与创新”成都站圆满落幕。可免费下载成都站|阿里云 Serverless 沙龙演讲 PPT。
|
人工智能 弹性计算 运维
阿里云宣布 Serverless 应用引擎 SAE2.0 将公测上线,多款产品全新升级
阿里云宣布 Serverless 应用引擎 SAE2.0 将公测上线,多款产品全新升级
70430 53
|
人工智能 弹性计算 运维
阿里云容器服务 Serverless 版(ACK Serverless)全新升级
阿里云容器服务 Serverless 版(ACK Serverless)全新升级
1609 10

热门文章

最新文章

相关产品

  • 函数计算