开发者社区 > 云原生 > Serverless > 正文

【藏经阁一起读(25)】读《五天玩转EMAS Serverless》,你有哪些心得?

藏经阁2.0全新上线!下载本地、线上阅读让你轻松获取技术知识。为了让更多人学习到藏经阁中的优秀技术作品,培养好的阅读习惯,“藏经阁一起读”活动来啦,你阅读,我奖励!

本期书籍《五天玩转EMAS Serverless》

阅读地址https://developer.aliyun.com/ebook/7703

书籍简介:开发者可以在小程序端和控制台使用云存储功能。图片上传成功后,系统会自动生成一个资源链接。开发者可以在小程序中使用该图片地址。本课程将带领大家认识 EMAS Serverless 的各种云能力,同时带大家在五天时 间完成疫苗预约小程序的开发。

活动规则:阅读书籍,将你对于本书的想法、收获等在评论区留言,评论不少于200字,将选取评论质量最高的前2名和点赞数第一名送出手持USB充电小风扇

image.png

image.png

活动时间:2022年8月15日~8月22日14:00

参与用户务必扫码加入钉群,第一时间了解活动进展、获取得奖信息。

lQLPJxZ5waT1HXTNAVDNAVCwoRgUcehMiKACyI1RkwB1AA_336_336.png

快来阅读吧!链接:https://developer.aliyun.com/ebook/7703

展开
收起
开发者小助理 2022-08-15 14:50:20 67540 0
26 条回答
写回答
取消 提交回答
  • 前端开发。

    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 的朋友们上手体验。

    2022-08-23 23:42:04
    赞同 展开评论 打赏
  • EMAS Serverless 是阿里云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、自动弹性扩缩的后端云服务,包含计算、存储、托管等 Serverless 化能力,可用于一云多端开发多种端应用,帮助开发者统一构建和管理后端服务和云资源,避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。

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

    2022-08-23 19:04:06
    赞同 展开评论 打赏
  • 一个热爱写代码的Java软件设计工程师

    EMAS Serverless可以进行多平台开发,一套代码多个平台使用,我们只需要把代码提交到云平台,之后通过对应的客户端进行调用即可. EMAS Serverless的意义? 可以说EMAS Serverless的存在借方了前端工程师的生产力,让小程序开发更加模块化,切片化.大大提升了开发效率.

    2022-08-23 12:03:34
    赞同 展开评论 打赏
  • EMAS Serverless的意义? 可以说EMAS Serverless的存在借方了前端工程师的生产力,让小程序开发更加模块化,切片化.大大提升了开发效率.

    2022-08-22 13:48:11
    赞同 展开评论 打赏
  • EMAS Serverless的意义? 可以说EMAS Serverless的存在借方了前端工程师的生产力,让小程序开发更加模块化,切片化.大大提升了开发效率.

    2022-08-22 13:11:32
    赞同 展开评论 打赏
  • EMAS Serverless可以进行多平台开发,一套代码多个平台使用,我们只需要把代码提交到云平台,之后通过对应的客户端进行调用即可. EMAS Serverless的意义? 可以说EMAS Serverless的存在借方了前端工程师的生产力,让小程序开发更加模块化,切片化.大大提升了开发效率.

    2022-08-22 13:08:17
    赞同 展开评论 打赏
  • EMAS Serverless 是阿里云提供的基于 Serverless 技术的一站式后端开发平台,为开发者提供高可用、弹性伸缩的云开发服务,包含云函数、云数据库、云存储、静态网站托管等功能,帮助开发者及企业客户快速实现一云多端应用的搭建,您无需管理服务器等基础设施,便可以无缝对接丰富的云资源

    2022-08-22 13:00:37
    赞同 展开评论 打赏
  • EMAS Serverless 是阿里云提供的基于 Serverless 技术的一站式后端开发平台,为开发者提供高可用、弹性伸缩的云开发服务,包含云函数、云数据库、云存储、静态网站托管等功能,帮助开发者及企业客户快速实现一云多端应用的搭建,您无需管理服务器等基础设施,便可以无缝对接丰富的云资源

    2022-08-22 12:55:52
    赞同 展开评论 打赏
  • EMAS Serverless 是阿里云提供的基于 Serverless 技术的一站式后端开发平台,为开发者提供高可用、弹性伸缩的云开发服务

    2022-08-22 12:53:46
    赞同 展开评论 打赏
  • .EMAS Serverless 是阿里云提供的基于 Serverless 技术的一站式后端开发平台,为开发者提供高可用、弹性伸缩的云开发服务,包含云函数、云数据库、云存储、静态网站托管等功能,帮助开发者及企业客户快速实现一云多端应用的搭建,您无需管理服务器等基础设施,便可以无缝对接丰富的云资源。

    2022-08-22 12:50:28
    赞同 展开评论 打赏
  • EMAS Serverless可以进行多平台开发,一套代码多个平台使用,我们只需要把代码提交到云平台,之后通过对应的客户端进行调用即可. EMAS Serverless的意义? 可以说EMAS Serverless的存在借方了前端工程师的生产力,让小程序开发更加模块化,切片化.大大提升了开发效率.

    2022-08-22 12:49:20
    赞同 展开评论 打赏
  • 全书详细的介绍了从 EMAS Serverless的基本原理、开发者如何接入EMAS Serverless以及 EMAS Serverless 的开发环节、实战演示了小程序疫苗预约的框架搭建和数据库管理、云函数开发和云函数实战、云存储以及云调用,五个大的章节

    2022-08-22 12:46:43
    赞同 展开评论 打赏
  • EMAS Serverless的意义? 可以说EMAS Serverless的存在借方了前端工程师的生产力,让小程序开发更加模块化,切片化.大大提升了开发效率.

    2022-08-22 12:42:54
    赞同 展开评论 打赏
  • 虽然过去不能改变,未来可以!!!

    EMAS Serverless可以进行多平台开发,一套代码多个平台使用,我们只需要把代码提交到云平台,之后通过对应的客户端进行调用即可. EMAS Serverless的意义? 可以说EMAS Serverless的存在借方了前端工程师的生产力,让小程序开发更加模块化,切片化.大大提升了开发效率.

    2022-08-22 12:39:55
    赞同 展开评论 打赏
  • 无所不能的蛋蛋

    MAS Serverless 是阿里云提供的基于 Serverless 技术的一站式后端开发平台,为开发者提供高可用、弹性伸缩的云开发服务,包含云函数、云数据库、云存储、静态网站托管等功能,帮助开发者及企业客户快速实现一云多端应用的搭建,您无需管理服务器等基础设施,便可以无缝对接丰富的云资源

    2022-08-22 12:36:38
    赞同 展开评论 打赏
  • MAS Serverless 是阿里云提供的基于 Serverless 技术的一站式后端开发平台,为开发者提供高可用、弹性伸缩的云开发服务,包含云函数、云数据库、云存储、静态网站托管等功能,帮助开发者及企业客户快速实现一云多端应用的搭建,您无需管理服务器等基础设施,便可以无缝对接丰富的云资源

    2022-08-22 12:35:30
    赞同 展开评论 打赏
  • 尝试了下 很不错

    2022-08-22 10:15:14
    赞同 展开评论 打赏
  • 《五天玩转EMAS Serverless》 就像他的简介说的一样 EMAS Serverless是阿里云一站式应用研发平台EMAS旗下的一款子产品,是面向小程序场景提供的Serverless开发、运营套件,开发者无需关心服务器和进行底层设施运维,专注于代码逻辑和业务本身,具备极简运维、多端适配、按需使用、弹性扩容等优势,帮助开发者快速部署小程序。

    2022-08-21 08:01:49
    赞同 展开评论 打赏
  • 通过书籍了解到: 1.EMAS Serverless 依托阿里巴巴数字经济技术能力和业务能力提供云函数、云存储、云数据库等 Serverless 服务。大大提升了前端工程师的价值,让开发者快速落地小程序开发工作,按量付费和自动弹性伸缩省时省力。此外, ES 还支持静态网站托管以及面向支付宝生态的云调用模块,技术与商业联动为开发者提供一站式地小程序生态服务。 2.EMAS Serverless 是阿里云提供的基于 Serverless 技术的一站式后端开发平台,为开发者提供高可用、弹性伸缩的云开发服务,包含云函数、云数据库、云存储、静态网站托管等功能,帮助开发者及企业客户快速实现一云多端应用的搭建,您无需管理服务器等基础设施,便可以无缝对接丰富的云资源。 咳咳咳!!!!!!!!!! 上面内容过于官方,说了你们也不一定看得进去!!!! 滑稽 1.开发者版本免费!!!!!!非常赞 2.操作真的够人性化的,衔接简单!!!!!!Serverless的理念很好,让我们只关心代码的编写,只需要编写一个个函数就可以了 3.我真的很想要个小风扇。 我觉得科普一下现阶段Serverless在一些旁路需求还是很有价值的,比如视频转码,直播录制,文件处理,跑跑离线数据,搭搭个人博客。如果你有这方面的需求,用Serverless是可以节约很多成本的。 okokok到200了吧

    2022-08-20 11:26:57
    赞同 2 展开评论 打赏
  • 《五天玩转EMAS Serverless》大致讲解了 什么是EMAS Serverless? 是阿里云基于Serverless提供的一整套的后端开发平台,开发者通过API就能调用相应的计算/存储/文件等服务,这一套基本上的可以和云资源无缝对接.这就达到了使开发者不需要关注服务器,环境,运维等边边角角,能够更精确的专注于代码本身,直接对接业务,进而提高效率,达到公司减耗提效之效果. 前端如何使用? 一般来说,阿里云支持NodeJS开发,即通过把代码提交到云端,开发的时候直接通过API就能进行调用,而且调用就可以直接访问对应的云数据库和云存储,简化了后端相关. EMAS Serverless支持的场景? EMAS Serverless可以进行多平台开发,一套代码多个平台使用,我们只需要把代码提交到云平台,之后通过对应的客户端进行调用即可. EMAS Serverless的意义? 可以说EMAS Serverless的存在借方了前端工程师的生产力,让小程序开发更加模块化,切片化.大大提升了开发效率.

    具体使用 前期可以通过平台提供的在线模拟,直观的看到自己项目的效果,减少返工 费用方面可按量付费和自动弹性伸缩,相对更经济

    2022-08-19 11:53:31
    赞同 2 展开评论 打赏
滑动查看更多

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载