[肥用云计算] Serverless 入门使用 [第1章]
serverless 入门
前言
企业级应用场景
但是时常会面对下面的问题:
- 简单独立的且不常使用的需求,怎样用一些简单的业务实现,配合不复杂的部署方式,比如 后台处理等
- 与云计算强绑定的业务,如何不用耦合到业务代码里面,比如,OSS,短信,消息队列等
- 潮汐的业务,如何可以快速的扩容缩容,且节约成本
个人应用的部署
作为程序员有时候会自行开发一些 site project,这个时候就需要部署应用了,那么就会面对下面的问题:
- 购买域名
- 申请ICP
- 绑定IP, 域名解析
- VCP设置,安全组打开
- SSL 证书申请和上传
还没有开始开发,已经是各种繁琐的步骤,影响了开发的效率。还要考虑后续运维,比如流量增大的各种扩容的问题。
这时 serverless 是另外一种选择去解决上述的问题。
serverless 是一种快速的和专注业务的开发和部署方式。
本文将介绍 serverless 入门,感受一些 serverless 的好处。
下面都是使用 阿里云的
serverless的进行验证和演示。
Hello world
例子是从 阿里云的 serverless 的说明文档来。
直接上手一个 hello world 先,部署一个 python flask 应用,他是一个后台的应用。
预期:快速部署一个后台应用,restful 返回,有访问的域名地址。
采用 本地开发 和 local本机部署 的方式。
本机是 windows10 机器,使用
git bash shell
- 先安装包
$ npm install @serverless-devs/s -g
npm WARN deprecated koa-router@10.1.1: **IMPORTANT 10x+ PERFORMANCE UPGRADE**: Please upgrade to v12.0.1+ as we have fixed an issue with debuglog causing 10x slower router benchmark performance, see https://github.com/koajs/router/pull/173
changed 124 packages in 25s
$ npm --version
9.5.1
$ node --version
v18.16.0
- 配置云计算服务认证信息
why?因为
serverless是运行在云计算服务商上的,当然需要认证的信息去调用云计算服务咯
$ s config add
? Please select a provider: Alibaba Cloud (alibaba)
🧭 Refer to the document for alibaba key: http://config.devsapp.net/account/alibaba
? AccessKeyID: LTAI5t6JRPT***VZYMkBNPKf
? AccessKeySecret: 18tLB2iyIG***ZO9ssIc8ICBa1ouz
? Please create alias for key pair. If not, please enter to skip default
Alias: default
AccessKeyID: LTA******************PKf
AccessKeySecret: 18t************************ouz
AccountID: 171**********690
✔ Configuration successful
- 使用脚手架,生成代码,并且启动
$ s init start-flask -d start-flask
◆ More applications: https://registry.serverless-devs.com
✔ file decompression completed
Serverless Devs Application Case
Cloud services required:
- FC : https://fc.console.aliyun.com/
Tips:
- FC Component: https://www.serverless-devs.com/fc/readme
创建应用所在的地区
? 地域 cn-shenzhen
服务名称,只能包含字母、数字、下划线和中划线。不能以数字、中划线开头。长度在 1-128 之间
? 服务名 fc-test-01-flask
函数名称,只能包含字母、数字、下划线和中划线。不能以数字、中划线开头。长度在 1-64 之间
? 函数名 f01
? please select credential alias default
- 启动信息打印
framework:
region: cn-shenzhen
service:
name: fc-test-01-flask
function:
name: f01
runtime: python3.9
handler: index.app
memorySize: 128
timeout: 60
url:
system_url: https://f-fc-test-flask-eugyjtpwxl.cn-shenzhen.fcapp.run
system_intranet_url: https://f-fc-test-flask-eugyjtpwxl.cn-shenzhen-vpc.fcapp.run
custom_domain:
-
domain: http://f01.fc-test-01-flask.1719759326012690.cn-shenzhen.fc.devsapp.net
triggers:
-
type: http
name: httpTrigger
- _直接访问
_custom_domain_验证 _

当然也是可以在 web页面进行验证
经验证,已经部署好了。
- 从 web页面中检查是否已经部署好

服务与函数 -》 服务列表 -》 函数列表
服务名 和 函数名 也是和我们之前的设置一样。
- _本地代码修改
_index.py_,并且重新部署 __s deploy_

- 待成功后,直接访问验证

- 符合预期
总结
本次的流程:本地命令开发,拉取脚手架,修改代码,部署。其中 部署 已经把 代码打包、上线运行、域名解析等操作都完成了,时间耗费了 5s 左右。
一个命令(s deploy)就把 部署过程中的所有复杂度给隐藏了。把部署的流程简化了,所以我们的精力都集中在编写业务代码的上面。
概念说明
逐步把一些我们碰到的概念进行说明一下。
应用/服务/函数
应用,有多个 服务;服务,有多个 函数。
应用:基于代码,拥有 CICD 的流程,和各种复杂的服务,比如 灰度发布,不同环境的发布等。
服务:与下面的 _函数 共享一样的配置。
比如:支付宝,是一个 应用,他可以提供多个不同的_服务,比如,支付服务,小程序服务;同时,支付服务,又由不同的 函数 来支撑,比如 付款函数,退款函数 等。
s init和s deploy等命令,都是快速启动 服务和函数,跳过了 应用这个概念。
走马观花
阿里云已经集合了很多不同的应用,我们可以手动直接部署一下,感受一下 serverless。
从下图的入口进入

里面有各种不同的独立应用,比如 大的应用:nas、商城等;小的应用:就是一个函数,人工智能,图片转换等。直接鼠标点击,就可以部署一个应用。下面我们来尝试一下。
Excalidraw
尝试一下在线画板,点击生成。
等待一会儿,应用已经 ready。访问后,一个完整的前端项目的应用就已经可以使用了。
AI 目标检测

看到这个赶紧点击部署一下。
直接上传图片,得到检测结果,就是解析图片上的物品,效果还是不错的。
这个是单一功能的 函数部署,只需手动点击,就可以得到一个不错的功能。减少造轮子的时间。
总结
本文大致聊了 serverless 的入门。
对企业而言,解决各种运维层面的问题(扩容缩容,灰度发布,减少陈本,非耦合业务拆解),serverless 是一个不错的选项。
对个人而言,可以专注业务,不用考虑前期的购买服务器和后期的运维,提高整个的开发效率。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)