收藏 分销(赏)

Serverless 云开发从入门到实战.pdf

上传人:Stan****Shan 文档编号:1239609 上传时间:2024-04-19 格式:PDF 页数:128 大小:9.49MB
下载 相关 举报
Serverless 云开发从入门到实战.pdf_第1页
第1页 / 共128页
Serverless 云开发从入门到实战.pdf_第2页
第2页 / 共128页
Serverless 云开发从入门到实战.pdf_第3页
第3页 / 共128页
Serverless 云开发从入门到实战.pdf_第4页
第4页 / 共128页
Serverless 云开发从入门到实战.pdf_第5页
第5页 / 共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 客户端整合成一

26、个应用,并应用部署到云开发平台上。在任务系统页面右侧添加一个任务,左侧任务列表的底部就会显示新添加的任务。Springboot 应用部署上线Springboot 应用部署上线第一种,把登录态信息存储到 cookie 上,让浏览器保存。第二种,在大型应用场景,登录态把它存储到共享服务上。共享服务是指数据库或Redis 缓存,一般是存在缓存里而不是存数据库里的。或者是专门启动一个保存用户登录态的服务,设置一个专门的微服务管理,这是大型应用场景的做法。登录态里面可能就存储在用户的一些权限信息、组织信息、一些状态、或是具体应用的信息,都可以存在这里。一般轻量级的应用,都是通过存储到 cookie 上,

27、cookie 在浏览器和服务端来回传,它的登陆态就都保存起来了。这样用户每次访问时是无感的。二、怎么通过云开发平台把应用迁移并部署到二、怎么通过云开发平台把应用迁移并部署到 ServerlessServerless 服务上服务上。在云开发平台创建迁移项目,点击创建后选择技术场景下的微(Microservice)服务,然后选择 Springboot 应用迁移方案 SAE。关于解决方案,我们展开说一下。云开发平台上有三种 Serverless 计算服务,一种是函数计算,之前的篇幅已经介绍过了;另外两种是服务型的 Serverless,它包含两种计算服务方式:a 是轻量型的微服务引擎 SAE 即 S

28、ervice Application Engine;b 另外一种更适合大型应用场景的 ASK 即 Application Serverless Kubernetes,这个也是按量计费的服务方式。这两个典型服务型 Serverless 都是免运维的,意思是它能自动伸缩自动弹性,宕机自动扩容,不用评估流量,不用担心不够用。Springboot 应用部署上线Springboot 应用部署上线另外一种方式更简单。大家把 codeup 代码仓库 checkout 出来到本地,然后再把这个代码拷贝到相关目录下提交到 codeup 代码仓库,然后再在 Cloud IDE 中把代码拉取到IDE 工程目录中。拖

29、完代码后,从 IDE 页面代码目录结构可以看到这是一个很典型的应用。目录中包括控制层、服务层、数据访问层等等。完成代码设置,可以实现应用的本地启动。尝试 CloudIDE 云端启动的时候,要确保应用连接到云端的数据库。方法就是,提前在云端申请一个数据库,并做好配置。Springboot 应用部署上线Springboot 应用部署上线四四、当本地启动成功,如何访问和调试?、当本地启动成功,如何访问和调试?在 Cloud IDE 页面左下角点击预览,并把 8080 端口映射出来并点击访问,就可以访问服务了。这个登录页面是访问容器的,登录进去后,进入到任务管理界面。任务管理系统里面建了两个表,如果在

30、主页面添加数据,表格中也会对应的添加进来。在没有电脑的情况下,使用一台平板电脑打开这个浏览器登录 Cloud IDE 界面就可以写代码,这是浏览器在线编程的方式。Springboot 应用部署上线Springboot 应用部署上线在本地 IDE 中写代码的效率是比较高的,在云端 Cloud IDE 开发环境更方便联调代码。当遇到没有自己电脑的情况,或者修改简单 bug 的时候,会用到云端的 Cloud IDE,在上面可以实现写代码。未来,云端开发体验基本上可以做到和本地 IDE 开发体验一致。如果能达到这样的效果,未来所有的开发都可以在线上实现。现在主要还是通过本地开发环境,写好代码后提交到代

31、码仓库里完成项目的实现。开发完毕,需要部署到测试环境进行验证,这就需要部署到云端的测试环境上,这个测试环境可能会连接到测试数据库,或者单独有个专门的测试数据库,尽量跟开发隔离。测试环境完成后,基本上就可以把这个应用发布到线上了。发布之前会有一个预发的环境,这个预发环境只是没有对外提供服务而已。这个预发,内网可以访问而外部客户是访问不到的。预发环境都是连的正式数据库。预发也没问题了,就可以发布到正式环境,直接向外提供服务了。部署完成,我们通过日志可以看到整个过程。第一步,Java 构建申请运行环境,然后在 Flow 容器里去构建编译代码,编译代码完成是去打镜像,然后把镜像上传到镜像仓库里面去。第

32、二步,编排 VPC 的网络,编排网络就是要构建一个基础设施的环境,就是一个虚拟的网络。如果访问一个存量的应用,存量的数据库或者是存量的 Redis 或者中间件服务,这些都需要编排在同一个 VPC 里面,才能访问、才能互联互通。Springboot 应用部署上线 Springboot 应用部署上线八八、课程汇总、课程汇总把一个 Springboot 迁移到云开发平台。第一步,要把当前应用,无论是本地开发还是云端开发,变成无状态的;第二步,把代码搬迁到云开发平台上,云开发平台会给你创建一个代码仓库;第三步,根据迁移工程里面的 README.md 或者云开发平台上帮助文档的说明,修改 pom.xml

33、 文件,加上代码和配置,再加上 Springboot 打包的插件,提交代码;第四步,提交代码然后点部署,部署的时候它是只有一个环境的,只有一个 prod。线上的配置相当有两个层级,第一个层级是区分开发模式;第二个层级是区分三套环境,测试环境、预发环境和正式环境;第五步,测试环境测试验证,最后部署到正式环境。第三章第三章 云开发云开发后端篇后端篇53 如何访问云 OTS 数据库和实践如何访问云 OTS 数据库和实践作者|繁易 淘系 Node 架构技术专家基于云开发系列课程的深入,本篇内容将为大家介绍在实际的应用开发中如何把数据存储到数据库,还有我们如何从数据库里快速调取需要的数据。希望通过此课程

34、,大家可以快速学习到 Midway+数据库的一个操作。一一、如何创建、如何创建 OTSOTS 数据库?数据库?首先打开云开发平台,创建新的应用,选择“实验室”场景,然后选择 WEB 场景,下拉条选择开发市场的解决方案,就叫 Midway Serverless OTS 数据库示例。选择之后直接进入下一步,填写好名称等相关信息,完成应用创建。等应用初始完成后,点击开发部署进入应用。在初始化空间之后,我们要做的第一件事情就是安装依赖。如何访问云 OTS 数据库和实践 如何访问云 OTS 数据库和实践启动成功后,点开就能看到 todo list 页面,在 todo list 的页面里,默认连上我们提供

35、的数据库。当在 todo list 里看到内容界面就可以往里添加或删除某个 todos,然后点击完成。提示:在创建应用的时候要选实验室里面的 Midway OTS 数据库,而不是 RDS。二、如何去使用二、如何去使用 OTSOTS 数据库?数据库?OTS 是阿里云推出的一款数据库。点进创建的 OTS 数据库后,会看到管理控制台的界面(要提前开通权限)。在这个界面里首先要填实例名称,再选确定,然后就创建了一个新的 OTS 数据库。如何访问云 OTS 数据库和实践 如何访问云 OTS 数据库和实践最后是阿里云的 accessKeyId 和 secretAccessKey。这两个地方需要填的内容可以

36、到个人信息页去获取。获取途径:点开表格存储管理页面,点击右上角,在浮出的窗口里会有 accessKey管理,点击它。如果没有 accessKey,可以点一下右上角的创建 accessKey,完成创建自己的 AccessKey 和 secretAccessKey。在创建完之后一定要复制好 key 的 ID 和密码。填好自己的 accessKeyID 和 SecretAccessKey 后,在表格存储的管理页面,创建新的一张数据表用来存储列表数据。补充表格的名称并设置好主键后,确定完成创建数据表。如何访问云 OTS 数据库和实践 如何访问云 OTS 数据库和实践有了这个包,就可以直接写入对应 tb

37、Config 里的 KeyId、endpoint instancename等内容。完成这步操作就能在代码里直接使用这份数据库,然后通过阿里云包提供的方法来直接获取到一些数据,并返回给前端。通过这样的操作就能把数据库的数据做好存取和增删改查。那么即使用户离开,他下次回来后还能看到上次存取的数据。通过 OTS 示例可以快速地开发一个带数据库增删改查的程序。如果想应用数据库更多的功能,比如说查找、聚合、排序等都可以参考阿里云 OTS 的产品文档。三三、怎么添加数据?、怎么添加数据?添加数据可以直接在 todo list 里面增加。在输入栏添加数据,然后新数据会调用 add的接口,在实际 sdd 的代

38、码里面,它就会接收到请求参数。四四、如何做到表格存储数据库?、如何做到表格存储数据库?表格存储其实是在做一些海量化结构数据存储的 Serverless 的 NOSQL 数据库,对很多产品都很适合。阿里云还有安全管理,不过需要单独赋予权限,如何赋予权限可以参考阿里云平台表格存储文档的讲解。如何访问云 OTS 数据库和实践 如何访问云 OTS 数据库和实践3.3.如何应对高并发?如何应对高并发?这跟 Serverless 特性相关。Serverless 有一个特性叫动态修库容,动态修库容的意思是当流量洪峰过来的时候,它会自动拓展一些实例,应对这个流量洪峰。为什么要用表格存储?因为表格存储是一个 N

39、oSQL 的数据库,表格存储的设计之初也是为了应对流量洪峰去做的一些相关的事情,它跟 Serverless 一样,会根据你流量的大小来去自动抗压。如何访问云 MySQL 数据库和实践 如何访问云 MySQL 数据库和实践WEB IDE 的左边是项目的目录数据结构,第一节课已经详细的介绍过目录结构,在此不再做赘述。这个项目里有几个函数,有渲染前端 html 界面的函数,有数据的增删改查函数,list,update,remove 和 add,这几个分别对应我们接下来要分享的使用 MySQL数据库的增删改查四个功能。左侧目录架构里有一个叫 config 的文件夹,在 config 文件夹里面有一个

40、config.default.ts,熟悉 egg.js 的同学会知道对于配置会有多套环境,这些配置会与 config.default.ts 合并,生成一份线上在运行当前环境的一个配置的对象。在配置里会配置一些,比如今天主要介绍的连接 MySQL 数据库,在这个配置里面我们就会通过环境变量,把一些 MySQL 的配置给加进来。在阿里云云开发平台,当你创建好一个实例的时候,云开发平台会给你默认的提供一些配置,比如 RDS 数据库名称、数据库的连接地址、密码、端口等信息,这些信息会在云开发平台通过环境变量的形式,注入到系统的一个环境变量里面去。如何访问云 MySQL 数据库和实践 如何访问云 MyS

41、QL 数据库和实践render 函数是用来做前端页面渲染的,前端页面会包含 html 文件和 css 样式的代码,还会有一些 script 前端的解释脚本。StaticFile 这个文件可以把一些前端静态的文件通过这个函数进行输出,在 default 这里可以把一些静态文件的目录指定了一下是 build 的目录,build 的目录其实是通过 public 目录来编译生成的。public 的目录里面,有 html 前端渲染出来的 html 模板,通过一些编译,会把它生成一个显示出来的 html 代码。当一个请求首先通过浏览器访问某个域名的地址,再进入到这个函数,最后进入到阿里云的网关,阿里云的网

42、关就会根据这个函数的请求路径去找到对应的函数去执行,然后把这个请求转化到函数里面,再在函数里拿到 request 对象,这个时候中间件就开始执行了,中间件执行的时候会判断。比如请求路径的文件正好在静态文件public 目录里边有,那么就直接把文件给返回了。如何访问云 MySQL 数据库和实践 如何访问云 MySQL 数据库和实践二、怎么去创建自己的二、怎么去创建自己的 MysqlMysql 数据库呢?数据库呢?首先登录阿里云,登陆后会发现在左侧会有一个产品和服务,在这里可以搜索 RDS,搜索结果会出现数据库 RDS 版,然后点击一下就可以进到 RDS 的管理控制台。点击RDS 管理控制台左侧的

43、实例列表,就可以在右上角来创建实例,创建实例后就会跳出一个新的 RDS 的购买页面,大家可以选择自己要使用什么样的 RDS 数据库,最后勾选确定。如何访问云 MySQL 数据库和实践 如何访问云 MySQL 数据库和实践remove 是一样的,在 OTS 数据库里这些操作也都是通过 primaryKey 去做的。在list 的时候可以看到我们是这么去写的,有 inclusiveStartPrimaryKey,是指从哪条开始到哪条结束,是批量性的获取,它定义 primaryKey 排序的规则,比如说逆序排序或者是一个正序的排序,通过排序的规则以及它 ID 的最大值和 ID 的最小值,可以按批量的

44、把这个数据库获取出来。因为 OTS 数据库返回的数据格式,是一个大的 Object,不像 Mysql获取后的数据是一条一条的这种数据结果。通过 OTS 数据库获取的数据,需要对 Object进行一些处理之后才能变成的一条一条的这种形式。我们提供 OTS 数据转化的封装很简单,通过 rows 这个方法就可以把数据变成一条一条的这种结果形式。第四章第四章 云开发云开发提高篇提高篇71 轻量易用的运维监控能力轻量易用的运维监控能力作者|欲休 阿里云技术专家本篇已经是云开发平台的第九篇内容分享,从第一篇到第九篇,大家可以发现,这是从云原生应用诞生、应用创建、开发代码、迁移部署和部署后的运维监控,一整套

45、操作。本篇内容主要分享轻量化运维监控这部分。一一、如何绑定域名、设置泛域名并设置多环境绑定、如何绑定域名、设置泛域名并设置多环境绑定?首先先创建一个香港节点的应用开始,因为后面会涉及到域名的解析。应用创建后,首先要确保进入到在线的开发环境,然后去部署。部署后复制 CNAME域名,然后打开域名管理平台,比如说阿里云的 DNS 域名管理,然后添加记录选择记录类型 CNAME,主机记录里填写*+*+自取名称自取名称,后缀是主域名 workbench.fun。这就意味着,只需要做一次解析,未来*可以用任何域名替代。创建之后,把上述复制的 CNAME 域名,粘贴到记录值框中,然后点击确认。记录值就把它填

46、写我们这边复制过来的 CNAME 地址,第一次部署之后得到的 CNAME 地址复制下来,然后把它填写到记录值里边,填写之后点确认。轻量易用的运维监控能力 轻量易用的运维监控能力部署成功后,在部署成功的消息里可看到“TEST 环境的自定义域名 pany.workbench.fun 已经绑定到 API 网关二级域名上,可以用自定义域名访问了”。打开 test 的自定义域名,而不是平台分配的临时二级域名,因为临时的二级域名只有30 分钟时效,所以在真实的开发环境当中,一般大家都需要绑定一个固定的域名。接下来部署预发环境,理论上讲当日常环境没有问题就可以选择部署预发环境。还是回到云开发平台,选择预发环

47、境,然后勾选“将日常环境发布到预发环境”,然后部署。预发环境部署好了,点开 pany.workbench.fun 的域名,打开预发环境。这样日常和预发两套环境就固定下来了,都没有问题的话,接下来就可以把它部署到线上环境。轻量易用的运维监控能力 轻量易用的运维监控能力发现有错误报警后,我们再次回到云开发平台。在云开发平台可以看到当应用上线后,就会出现“运维监控”和“应用账单”两个入口。运维监控是可以帮助快速查看应用线上运行的日志。那么为了解决上述的问题,我们点开运维监控查看运行日志。打开运维监控后,顶部会让我们选择要查看的运维监控环境。我们点开日常环境,这里面有日志查询和函数指标。点击函数指标会

48、切换到函数指标的一个界面,可以看到日常环境函数的调用情况,比如说内存使用情况,执行的时间,出错的情况,然后包括错误率等等这些信息。点开日志查询里有个简单查询,有个高级查询,一般情况下简单查询就足够我们去使用了。在日志查询里,点开每一个请求都可以看到请求背后的信息。这里我们可以点开每一个请求,看到请求背后的日志。轻量易用的运维监控能力 轻量易用的运维监控能力以上分享的是在开发调试阶段查看日志并定位问题。如果已经部署到线上了,怎么操作呢?部署成功后,可以登录原日常环境自定义域名,打开页面标题提示会由“日常环境“变成”线上环境“,说明部署成功。接下来来看这个部署成功的应用,这个应用既有前端代码也有后

49、端代码,那么这些代码用户在访问的时候就会产生一些流量,有些流量是可以缓存的。那么怎么去缓存获得更高的用户访问性能并降低下行流量呢,推荐的做法是通过给应用做 CDN 的全站加速来实现。CDN 全站加速在帮助页面-快速入门中也有介绍的文档。三三、如何做到、如何做到 CDNCDN 的全站加速?的全站加速?首先需要购买资源包。打开 CDN 控制台,点购买资源包,可以选择 18 块钱全国通用包 100GB,基本上正常情况下,个人应用都是够用的。购买之后,再到 CDN 控制台添加一个域名,比如泛域名*.company.workench.fun。资源组不用选,业务类型是动态加速,源站信息选源站域名;然后将应

50、用的 CNAME二级域名地址复制到域名栏中;端口选择取决于用什么访问,如果用 http 访问选择 80 端口;再选择加速区域,然后点击下一步完成。在实际使用中需要先将域名备案,这样可以在加速区域选择“仅中国内地”或“全球”,否则会有提示去备案。那么我们的课程分享的域名是测试域名,没有备案,所以选择“全球(不包含中国内地)”。轻量易用的运维监控能力 轻量易用的运维监控能力在真正使用 CDN 的时候,可以通过页面左侧目录工具管理中的“刷新预热”,通过它可以提前把要缓存的地址,URL 或目录,添加进来。这部分的操作在帮助文档中也有详细的介绍。点击提交后,可以点击操作记录,可以看到它会帮助针对添加的地

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服