Serverless 云开发从入门到实战.pdf
《Serverless 云开发从入门到实战.pdf》由会员分享,可在线阅读,更多相关《Serverless 云开发从入门到实战.pdf(128页珍藏版)》请在咨信网上搜索。
1、目录第一章 云开发入门篇3认识 Serverless 云开发平台51 分钟开发一个 API131 分钟开发一个网站18第二章 云开发框架篇21Koa 框架实现服务端渲染部署上线22SSR 框架实现服务端渲染部署上线27NodeJS 及 Python 主流框架部署上线38Springboot 应用部署上线41第三章 云开发后端篇52如何访问云 OTS 数据库和实践53如何访问云 MySQL 数据库和实践62第四章 云开发提高篇70轻量易用的运维监控能力71不改变本地流程的 CI/CD 能力82第五章 云开发实战篇90开发钉钉机器人91智能生产代码与 AI 应用的开发实践98快速开发天猫精灵智能应
2、用问答百科105前后端一体化应用开发实战116第一章第一章 云开发入门篇云开发入门篇5认识 Serverless 云开发平台认识 Serverless 云开发平台作者|风驰 阿里巴巴高级技术专家在阿里云的云开发平台,可以一站式支持整个研发团队在线上进行应用研发工作。使用阿里云账号登录平台,进入到平台之后我们可以选择不同的项目团队,就能看到云开发平台的应用列表操作界面,在这个界面大家可以看到一些简单的入口,那么下文将按顺序分别介绍一下。在应用列表操作界面的顶部,是阿里云云开发平台的介绍,旁边是非常重要的帮助入口。进入这个入口可以找到平台提供的重要文档,例如完整的快速入门,文档将指引首次登录的开发
3、者如何创建团队和管理团队,如何创建应用产品开发部署等,基本上涵盖了一个完整研发生命周期的全部内容指导。一、一、帮助文档帮助文档认识 Serverless 云开发平台认识 Serverless 云开发平台二、团队协同界面二、团队协同界面在阿里云标志的左侧有 9 个点的入口,点开是一个可以展开的团队协同的界面。界面里有工作台、知识库、测试管理、制品仓库、流水线、代码管理、企业成员等等一系列团队协同的工具,点开任何一个工具都可以应用到团队中。作为开发者可以基于工作台创建一些任务,并对一些任务和项目进行管理。比如代码管理,每一个应用都会给使用者分配一个代码仓库,通过代码管理可以详细地了解应用的代码仓库
4、是什么样子,以及针对它的所有更细节的操作你都可以实现。认识 Serverless 云开发平台认识 Serverless 云开发平台在当下团队下打开成员列表,可以看一张视图,主体是当前团队所有成员,右上角有两个入口,一个是添加阿里云子账号成员,一个是点击复制邀请链接,邀请其他阿里云主账号,这两个有什么区别呢?点击复制邀请链接,是指邀请其他阿里云主账号。意味着你邀请的人首先拥有阿里云的账号,他接受邀请加入你的团队之后,也是用他的阿里云账号登录。由于他是独立的阿里云账号,作为团队管理者你可能对他没法做管控,这种情况适用像开源的共建项目的相互协同。这种方式就会比较灵活,每个人都用自己的账号登录。当受邀
5、人打开链接后,会看到显示邀请人姓名的提示界面,点击同意加入团队后,等待审批。邀请人这边界面会提示有新用户申请加入,审批同意后受邀人即可通过阿里账户登录团队。邀请阿里云子账号成员,是指邀请你主账号之下创建的子账号。首先我们可以通过前往创建 ram 子账号入口,选择主账号人并给他创建子账户,并在创建过程中勾选控制选项,并设定登陆密码。子账号创建生效后,只需勾选此子账号,就完成了子账号邀请工作。大家在加入团队后可以按分配的任务进行执行,实现协同开发。所有团队成员角色和他们对应的权限,可以是应用开发者、应用管理者以及团队管理园等权限,通过第一点所提到的帮助文档里团队协同中查看。认识 Serverles
6、s 云开发平台认识 Serverless 云开发平台当成员在进行开发任务的时候,团队拥有者可以打开界面与之同步进行开发,这就是有趣的结对编程。完成代码开发后,点击 CloudIDE 左侧第一个部署的 tab 进行一键快速部署。如果部署成功,此应用标题下会有绿色显示,表示已经是 Online 状态;如果没有部署成功,右边会显示 Offline 状态。这就让哪些应用在哪个环境,是否成功部署,一目了然。认识 Serverless 云开发平台1 分钟开发一个 API1 分钟开发一个 API作者|洪浩原 阿里云高级技术工程师如果你是第一次使用阿里云云开发平台,请先阅读第一篇文章开通云开发平台。接下来,我
7、们以 NodeJS 语言的视角来完成这次开发。如果您擅长其它语言,不必担心,在文章结尾我们提供了其它语言的使用方式,而且它们几乎是完全相同的。进入云开发平台后,点击【创建新应用】,选择【空应用】选项卡,并选中函数计算FC 作为我们代码的运行服务器。从下拉的语言列表中,选择你擅长的语言,点击下一步,填写信息来创建出一个云开发平台应用。1 分钟开发一个 API1 分钟开发一个 API进入 CloudIDE 之后的第一步,是寻找左侧文件列表的 README.md 文件,里面有关于这种解决方案的丰富的说明信息。按照其中给出的提示,我们复制一段符合 FC 函数计算格式的 NodeJS 代码到 js 文件
8、中,然后在 do sth 下面编写我们自己的 helloworld 相关的代码;将返回值状态更改为 200,将返回值 body 更改为我们编写的 helloworld 变量,保存文件即可。注意一定要Ctrl+S 或者鼠标点击来保存刚编写的文件。打开 CloudIDE 最左侧WB插件的部署标签页,点击部署,会弹出部署信息确认,点击继续部署开始构建部署,请耐心等待,直到部署完成。部署完成后会看到如下信息,云开发平台会免费分配一个临时的二级域名对部署的应用进行访问。1 分钟开发一个 API1 分钟开发一个 API、如果您使用其它语言版本,那么过程和 NodeJS 是几乎一样的,唯一的区别在于READ
9、ME.md 文件中,您会创建不同语言对应格式的代码文件,来实现您的 API 逻辑。1 分钟开发一个网站1 分钟开发一个网站非常好,顺利输出了我们想要的结果,接下来我们在根目录下创建一个首页 index.html,写上一些基本的 html 标签和文字(或者从网上 copy 一段 html 示例代码)。并使用一段 js 的 fetch 指令来调用后端服务/api/helloworld 进行输出:保存,点击【部署】,将写好的 html 和 js 一同部署到 FC 函数计算上。部署之后,得到了临时的测试域名,可以在测试域名后携带/index.html 的路径来查看结果(因为我们的文件命名为了 inde
10、x.html,所以根路径也可以看到结果):1 分钟开发一个网站20在本示例中,我们基于 NodeJS 提供后端服务,但是.js 文件扩展名会被浏览器默认成下载行为,这就对我们的应用安全会造成安全风险。比如直接访问域名+“/index.js”来获取我们的 js 代码。我们要将所有后端服务的.js 文件保护起来。打开serverless.js,在SAFE列表中,将要保护的后端服务文件/目录 添加进去即可:重新部署后,在浏览器中访问/helloworld.js,/api/helloworld.js 就不会被下载了第二章第二章 云开发云开发框架篇框架篇Koa 框架实现服务端渲染部署上线 Koa 框架实
11、现服务端渲染部署上线Koa 中间件其实是一个很简单的 Function。这个 Function 会有一个 ctx 参数传进来,这个 ctx 相比原生的 Koa http 协议更具吸引力的是,Koa 它把原生的 http 的 request对象和 response 对象全都代理到了 ctx 对象上可。也就是说它把请求和响应的各种操作的方法全都代理到了 ctx 上了。有学过 Midway 的同学会发现它们的 ctx 本质上都是 Koa。关于 Koa 的 ctx 上面具体代理很多东西,大家可以到 Koa 的官网上查看它的文档。这样一个简单的代码,它应用了一个最小的中间件,这个中间件就是直接拿到 ct
12、x,然后 ctx.body 我们可以到官方文档上面找到,在官网上 ctx.body 就是 response.body。Koa router 这样一个中间件的使用方式。在 Koa group 里寻找中间件,装好中间件。我写个 hi serverless,这里加了一个路由,我们再加第二个,第二个取名叫 api,然后它这种中间件的使用方式也是通过这些中间件,最后要返回一个 Function 给 Koa 的 APP。(演示成果)我们先访问的是/path,出来的就是 hi serverless;再访问/api,出来的就是hi api。Koa 框架实现服务端渲染部署上线Koa 框架实现服务端渲染部署上线或
13、者是普通的服务器上跑,大家是不需要做这个操作的。了解了区别之后,我们就会知道如把本地的 Koa 应用迁移到云上的话,最主要的地方是把这个 APP 通过这样一个方式给导出来就行了。导出来之后,云端的同学就知道有这样一个 APP,它的运行方式跟我们在本地其实是一样的,我们这边的话代码叫 APP.js。在云上运行直接是 Node APP.js。四四、什么是、什么是 KoaKoa 中间件?中间件?导出的 APP 会在后台运行应用时被 require。Koa 的中间件把自己定义为普通的function,然后每一个部分都有它自己的 function,把这些 function 组合到一起,接连运行下去,这是
14、 Koa 对中间件的定义。Koa 中间件是它自己定义的一个扩展方法。Koa 遵循的设计模式是跟 Ruby on rails 比较像的,它遵循的原则叫约定大于配置。Koa 中间件做的约定是一个函数,它有两个参数,一个 ctx 一个 next,然后这样子的一个函数可以作为一个中间件来使用。由于 Koa 比较流行,所以在 Node 里一般讨论中间件就是指 Koa 中间件。你也可以自己写一个你觉得更好的中间件模型,如果你做的框架流行起来,那么中间件的标准就会变成你的。然后我们在云上跑跟在本地跑区别是差不多的。(演示)比如说我写一个 body=hi,然后再写一个,我在上面写一个 body=hi,这个约定
15、大于配置是说函数本身的,现在我们开始讨论中间件到底是什么东西,然后我把 ctx.body 加等于相当于一个 Alan,这里就有两个函数,这两个函数都被 Koa 给使用了。Koa 框架实现服务端渲染部署上线SSR 框架实现服务端渲染部署上线SSR 框架实现服务端渲染部署上线作者|张宇昂 优酷大文娱技术专家本篇内容主要介绍 FaaS 场景下的 SSR 框架,也就是在 FaaS 场景下怎么开发服务端渲染页面。服务端渲染是指前后端同构的服务端渲染,即 SSR。在介绍 SSR 框架之前,首先简单介绍一下 Serverless。首先是 NodeJS 的定位。在很多公司 NodeJS 都在充当 BFF 层的
16、角色,甚至NodeJS 只出现在本地开发,仅仅做一些开发工具和构建工具的角色。最主要的原因,可能是因为前端工程师在运维方面的知识比较稀缺,就导致了可能很多公司不敢 NodeJS,不敢让前端工程师做服务端。但是随着 Serverless 概念的出现,上面提到的问题就很好解决了。Serverless 不需要关注运维,只需要关注自身业务逻辑的开发,因为运维的工作在云开发平台都已经解决了,这对前端工程师来说是收益最大的。从 BFF 到 SFF 层本质上开发模式并没有改变,但是却大大提升了开发效率。上图列举了在 SFF 场景下,经常做的 5 个方面工作:SSR 框架实现服务端渲染部署上线SSR 框架实现
17、服务端渲染部署上线三三、实操演示、实操演示 S SSRSR 框架的使用框架的使用首先登陆云开发平台 http:/,然后创建应用。在创建的时候的时候,选择 WEB 和 FaaS 场景下的 SSR 框架。创建完成安装依赖,tips 是可以用cnpm 而不是用 npm 来安装依赖,cnpm 安装依赖要快很多。如下图可以看到 yml 文件,可以看到和 API 接口看起来差不多。上图所示新增的 render 字段的意思是,当检测到函数里有这个字段,这个函数要返回htmlStr 界面的,而不是返回 API 服务。index handler 的作用很简单,就是从ssr-core 中 emloy 的 rend
18、er 方法,然后再把返回的结果到 htmlStr。本地开发也是通过 cnpm start 来启动服务,可以直接使用 SSR 框架。启动后进行构建,同时启动 FaaS 服务,最后会返回一个地址,这个地址可以直接在浏览器打开来预览当前的应用。(展示预览)从页面的源码可以看出它包含了一个完整的 HTML 结构,也就是说这个页面是由服务端而不是客户端渲染产生的,点击刷新也不会产生因客户端渲染而产生的白屏。SSR 框架实现服务端渲染部署上线SSR 框架实现服务端渲染部署上线SSR 框架还支持客户端和服务端的一键切换的能力。以下图为例,它是服务端渲染,在 url 参数后面加 csr=1,就可以迅速的切换为
19、客户端渲染,切换之后页面的源码就变成空的了。回到控制台页面继续发布,发布之前要先 build,把前端文件进行打包,打包成生产环境需要用到的文件大小。如果使用 Cloud ID 发布,可以直接通过左边第一个 tag;如果是本地发布,可以直接通过一个命令来发布。发布时选择日常环境发布。构建之后会放在 build 目录下,然后根据函数作为文件夹的区分。比如,当前渲染层函数叫 index,构建出来的结果都放在 build index 函数文件夹下,分为 client 和 server 两个文件夹。SSR 框架实现服务端渲染部署上线SSR 框架实现服务端渲染部署上线四四、ssr-specssr-spec
20、 规范规范这部分主要介绍在怎样的规范下,才能在 Serverless 场景下开发出一个渲染层的页面。(实操演示讲解)如下图,框架在 github 的地址。在这个地址可以看到 SSR 的规范。这个规范主要是基于单页应用和多页应用两个不同类型的应用制定不同的规范,分为SPA 和 MPA。当下非常常见应用是 SPA 类型的。SSR 框架实现服务端渲染部署上线SSR 框架实现服务端渲染部署上线五五、ymlyml 文件的编写规范文件的编写规范yml 文件编写规范,函数里增加了 render 字段,也就是说,如果检测到这个函数有rander 字段,就说明这个函数会有渲染服务。比如 render 有个 mo
21、de,mode 默认是以 ssr 模式来渲染的,如果把 ssr 写成 csr就会把它降级为客户端。举个例子,页面可能会有些极端情况,当发生时页面在服务上会报错,这时候可以通过改 yml 文件来为客户端渲染。开发接口服务,只需要 handler 和events 是这两个字段就可以了。SSR 框架实现服务端渲染部署上线SSR 框架实现服务端渲染部署上线七、七、模式切换模式切换降级也有多种方式。为了更加灵活,如下图,支持 config.js。如果想改默认的配置或端口等,都有对应的配置可以更改。这个框架集成了很多流行的前端 UI 框架,不需要再为集成框架做额外配置了。NodeJS 及 Python 主
22、流框架部署上线NodeJS 及 Python 主流框架部署上线调试结束之后如果没问题,就可以去部署。点开 IDE 左侧第一个 tab 的 workbench部署插件,然后选择部署环境,点击确认就完成了部署。需要注意的是,基于 MidwayServerless 做 express 应用迁移,默认会把 app/和config/这两个目录打包进去,如果你的应用需要将其他的目录也一起打包,需要在 f.yml中添加如下的配置,比如 util 等。点开 workbench 部署插件,选择日常环境,然后点部署。部署完成平台会给分配一个二级域名,用于访问部署成功的线上结果。所以通过 MidwayServerl
23、ess,我们是可以很方便的把存量的 express 应用迁移到云上的。2.2.基于基于 NodeJSNodeJS 存量应用的迁移方案演示存量应用的迁移方案演示首先创建应用,选择 NodeJS 存量应用迁移方案,然后补充名称等信息,点击完成。代码仓库初始化完成后,把应用拖进去,然后打开 package.json 添加开发依赖,添加 mime 和 request 两个依赖,然后安装依赖。下一步是,配置应用的入口将Serverless_config_common_framework 重命名为 serverless_config.js。重命名之后配置框架和应用入口文件,然后完成开始测试。测试打开 We
24、b 插件,点击测试并勾选预览模式,启动测试。测试没有问题,就可以直接部署了。部署成功也会分配一个二级域名,我们通过域名打开线上地址,可以查看结果。二、如何通过二、如何通过 PythonPython 将应用部署到云将应用部署到云1.1.PythonPython FlaskFlask 应用迁移方案为例来介绍。应用迁移方案为例来介绍。参考帮助文档的步骤,首先创建应用,并选择 Python 前后端一体化应用方案,然后等待代码仓库初始化。初始化之后进入到在线开发环境,打开 README.md,先了解操作提示。然后添加 Flask 修改配置,保存,然后将 serverless_config_flask.p
25、y 重命名为serverless_config.py,接着配置入口。NodeJS 及 Python 主流框架部署上线Springboot 应用部署上线Springboot 应用部署上线作者|宁中 阿里云高级技术专家本篇将分享如何将 SpringBoot 应用通过云开发平台部署到服务型 Serverless 上;如何通过一套代码,协同支持线下环境、线上环境和云端开发测试环境的开发。讲解过程将通过一个任务管理系统如何搬迁并部署到 Serverless 上来演示。首先打开任务管理系统的登录页面并登录,这是一个分布式的任务管理系统。我们看看如何将任务管理器-Service 端和 Web 客户端整合成一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Serverless 云开发从入门到实战 开发 入门 实战
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【Stan****Shan】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【Stan****Shan】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。