典型案例 3:十分钟搭建弹性可扩展的 Web API |学习笔记

本文涉及的产品
函数计算FC,每月15万CU 3个月
.cn 域名,1个 12个月
简介: 快速学习 典型案例 3:十分钟搭建弹性可扩展的 Web API

开发者学堂课程【从 0 入门函数计算:典型案例 3:十分钟搭建弹性可扩展的 Web API】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/645/detail/10728


典型案例 3:十分钟搭建弹性可扩展的 Web API


内容简介

一、基本概念

二、Web API 的开发流程

三、演示 Web API 的开发流程

 

一、基本概念

在 10 分钟内搭建弹性可扩展的外部 API 主要分为3部分:

基于函数计算的 Web API 和普通 Web API 的区别和优势;

开发流程中介绍在函数计算的控制台进行 Web API 的开发;

根据实例演示函数计算外围 API 的开发过程。

常见了 Web API 的架构主要包括客户端,服务端,数据库。Web API 由服务器来提供,同时服务器还要完成负载均衡,登录鉴权,日志监控等相关操作。当客户端流量快速增加时,服务端只能通过水平扩展加机器的方式来增加自己的服务能力

这种常规模式分析主要有两点局限性:

1.除了开发业务代码还有大量的服务器运维成本来保证服务的稳定性可用性,花费大量的时间进行工作,占用开发时间,降低项目的研发效率。

2.流量突然增加时,需要水平扩展加机器,弹性的响应能力比较差,扩容速度往往需要数 10 分钟,无法实现秒级的极速扩容,这样就会导致一段时间内的服务能力不足,同时,当流量变少难以做到及时缩容,造成机器成本的浪费。

在函数计算的 Web API 架构当中与常规的 Web API 架构相比,客户端和数据库未发生变化的。

主要的变化体现在服务器端。

它的主要体现有:之前需要开发团队维护的路由模块以及鉴权模块都将接入服务商提供的 API 网关系统以及健全系统,开发团队无需再维护这两部分的代码,只需要维护相关的规则即可。

在这样的一个结构下服务器端的业务代码被拆分为一个一个的函数,不同的函数就代表了不同的功能。

在函数计算的 Web API 架构当中,已经没有了服务器的存在,这是因为目的就是让使用者只关注自己的业务逻辑即可,也就是每一个业务逻辑对应的函数,所以像安全问题,资源调度问题全部交给云厂商来负责。

相对于传统的项目而言,传统项目无论是否有用户访问服务器都在运行当中,就是造成了比较大的成本支出,而在 serverless 而言,只有在用户去用发起请求时函数才会被激活并执行,并且按照调用次数收费,相对来说可以在有流量的时候,才有支持,没有流量的时候就没有支出,相对来说成本会进行进一步的降低。


二、Web API 的开发流程

首先第一步登录控制台并创建一个应用,创建应用的方式有两种,第一种就是如果有现有的 web 应用,就通过第一种方式创建 web 应用,直接将的代码打包上传。第二种方式是通过模板来创建应用,就是通过这个模板的方式来创建应用,模板可以理解为它相当于是一个脚手架,可以快速的去完成一些基础配置,例如权限,角色,网关的配置。当完成创建应用之后,第二步就是在这个应用下去创建一个函数,而函数主要是支持事件函数,HTTP 函数和模板函数,选择 HTTP 函数。创建函数之后就开始开发具体的业务逻辑。业务逻辑开发完之后要配置一个触发器,配置触发器因为是 Web API 的一个方式,所以说的触发器其实就是一个 HTTP 的一个请求,然后在这个 HTTP 请求里边可以指定域名,来设定的真正的这个 HTTP 的域。然后最后一部分就是可以通过函数计算的监控来进行一调试以及服务上线之后的使用量的监控情况。


三、演示 Web API 的开发流程

首先进入管理控制台,选择应用中心,创建模板,创建应用然后选择一个基于Python 语言的简单 web 应用配置,叫做 Python API。通过这种模板方式的来创建应用相当于是一个脚手架,会把底层所依赖的一些资源帮去创建好,然后只要其实这些资源去开发一些函数就好了,这样会提高开发效率。下一步来创建一个函数,新建函数是 HTTP,下一步所在服务就选择 Python API,叫做 Python API test,语言选择 Python 3.0,触发器的名称也叫做拍 python web api,请求方式选择 get 。通过操作其实会自动生成一个叫做 Python API test 的函数。这个函数有一个最基本的实现,初始化的实现通过invoke来调用,然后就会翻译到最后,是 Hello World dispose,就在这个基础之上进行一个开发,首先先把这个格式变成一个阶层格式,返回的结果依然是 Hello World。它的一个实现的过程就是当用户按照触发器配置的路径,进行这个路径访问的时候,就会去触发到写的这个函数代码的执行,然后最终去结构给用户。

配置方式首先进入到自定义域名,需要在 FC 当中去接入到自己的一个域名,指定这样的一个服务,然后用刚才选择就是 Python API test 这样的一个函数,然后版本选择 last,当访问这个域名下的这个路径的时候就会去触发到刚才定义的这个Python API test 函数。就会返回到刚才预期的一个结果叫做 Hello World。这样完成了一个9最简单的 web API。9可以做一些更加复杂的操作。现在有这样的一个场景,有一个文件叫做 Story TXT 的文件,现在想实现一个功能就是用户去访问这个页面链接的时候,可以把这个文件的内容返回给用户。首先先 import 这个 OSS 的一个基本依赖,environment 其中包括两部分内容,一部分就是函数计算的上下文,这个上下文当中其实存了当前访问这个用户的一些基本的信息,方便做操作。第二部分包含 HTTP 请求里边的一些参数,需要用SS的话需要用到一些里面的一些参数。从 context 当中取出,可以搭配在文档中然后来看,具体内容还有其他的。

返回如果没有权限就需要给当前的这个函数计算加一个角色,赋予访问时经过的权限。给 Python API test 所在的应用创建角色,并且给这个角色赋予了访问权限。执行可以看到打印出来“阿里巴巴 is Happy Child”。把最终的这个结果返回给访问的用户。

整个逻辑再梳理一下就是首先去配置自定义域名,并且在这个域名下去配路径,然后当用户去访问这个路径的时候,就会触发到的触发器,触发器就会去调函数,然后在函数过程当中,去访问了 oss 当中叫做 storage TXT 的文件,并且把文件的这个内容返回给几个用户,这样一个完整的功能就实现了。函数的调用情况在这个函数指标的地方可以看到最近一个小时所有的一个调用情况。

相关文章
|
3月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
63 4
|
3月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
180 3
|
25天前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
58 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
3月前
|
计算机视觉 Python
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
这篇文章是关于如何使用Flask框架结合OpenCV库,通过电脑摄像头实现视频流在网页上的实时显示,并提供了单摄像头和多摄像头的实现方法。
134 2
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
|
2月前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
58 1
|
2月前
|
JSON API 数据格式
如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架
本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了示例代码。通过这些步骤,读者可以快速上手构建自己的RESTful API。
145 2
|
3月前
|
监控 负载均衡 API
Web、RESTful API 在微服务中有哪些作用?
在微服务架构中,Web 和 RESTful API 扮演着至关重要的角色。它们帮助实现服务之间的通信、数据交换和系统的可扩展性。
62 2
|
3月前
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
在Web开发领域,AJAX与Fetch API是提升交互体验的关键技术。AJAX(Asynchronous JavaScript and XML)作为异步通信的先驱,通过XMLHttpRequest对象实现了局部页面更新,提升了应用流畅度。Fetch API则以更现代、简洁的方式处理HTTP请求,基于Promises提供了丰富的功能。当与Python Web框架(如Django、Flask)结合时,这两者能显著增强应用的响应速度和用户体验,使项目更加高效、高大上。
59 2
|
3月前
|
前端开发 API 开发者
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
51 3
|
3月前
|
移动开发 前端开发 JavaScript
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
358 0