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

简介: 课时10:典型案例3:十分钟搭建弹性可扩展的 Web API

玩转AIGC训练营:课时10:典型案例3:十分钟搭建弹性可扩展的 Web API

课程地址:https://developer.aliyun.com/trainingcamp/1893257e5f7a442c988fd52c818309b3?spm=a2cwt.28237621.J_9603273760.8.31b2b726xTbsZG

课时10:十分钟搭建可弹性可扩展的 WebAPI

 

内容介绍:

一、基本概念

二、WebAPI的开发流程

三、操作演示

 

一、基本概念

1. 基本概念中介绍了基于函数计算的 WebAPI 和普通 WebAPI 有什么区别并有哪些优势

2. 开发流程中介绍了如何在函数计算的控制台进行 WebAPI 的开发

3. 操作演示中会根据实例演示函数计算 WebAPI 的开发过程

image.png

常见 WebAPI 的架构如图所示,包括客户端、服务端、数据库,WebAPI由服务器提供,同时服务器还要完成负载均衡、登录健全、日志监控等相关操作。

当客户端流量快速增加时服务端只能通过水平扩展加机器的方式来增加自建的服务能力,这种常规模式主要分析两点局限性:

1. 技术同学除了开发业务代码,有大量的服务器运维成本,来保证服务的稳定性、可用性

2. 流量增加时只能水平扩展加机器,响应速度慢、成本高。

image.png

基于函数计算的 WebAPI 架构中与常规的 WebAPI 架构相比,客户端数据库未发生变化,主要的变化体现在服务器端,主要体现有:

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

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

image.png

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

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

 

二、WebAPI的开发流程

image.png

第一步登录控制台并创建应用。创建应用的方式有两种:

1. 如果现有WebAPI应用,直接创建应用将代码打包上传。

2. 通过模板来创建应用,模板可以理解为相当于一个脚手架,可以快速的帮助完成一些基础配置,比如说权限、角色、网关一系列的配置。

image.png

完成创建应用后就是在应用下创建函数,主要支持事件函数、HTTP函数、模板函数,本次选择HTTP函数

image.png

创建完函数之后就开始具体开发业务逻辑,业务逻辑开发完之后就要配置一个触发器。因为是WebAPI的方式,所以触发器就是HTTP的请求,在这里可以指定域名来设定。

image.png

最后可以通过函数计算的监控来进行调试,以及服务上线之后使用量的监控情况

 

三、实际演示整个WebAPI的开发流程。

首先进入管理控制台,选择应用中心,基于模板创建应用

image.png

选择基于 Python 的应用,配置并部署,上述提到通过模板方式来创建应用相当于一个脚手架,会把底层所依赖的资源创建好,只有基于资源去开发函数就可以,可以提高开发效率。

image.png

创建 HTTP 函数,选择 PythonAPI,语言选择 Python3.0

请求方式选择 GET

image.png

 

通过这样的操作函数计算会生成函数,会有初始化的实现,就在这个基础之上进行开发。

首先先将 plain 改为 json,格式改为 Save lnvoke,返回的结果依然是 Hello worldi,现在就拥有了一个非常简单的 WebAPI

image.png

实现过程就是当用户按照触发器配置路径进行访问的时候就会触发写的函数代码的执行最终反馈一个结构给用户。

image.png

现在触发器的路径是自动生产的,现实情况下会选择自己的域名自己的路径。

image.png

进入到自定义域名

image.png

在域名下配置一个已有路径

image.png

比如说就用 webapi.json 路径,调用我们自己的函数,版本选择 LATEST,经过这样的配置当访问域名下路径的时候就会触发我们定义的函数

image.png

 

我们进行简单的修改

image.png

这样我们就完成了一个简单的 WebAPI

 

假设一个场景

image.png

用户去访问链接的时候,可以把文件的内容反馈给用户,首先我们先定一个基本依赖,handler是HCC触发器之后所运行的函数Environ,包含两部份内容,一部分是函数计算的上下文,上下文中存了当前用户的基本信息方便操作,第二部分是包含了 HCC 请求里的一些参数。

编写一些代码并执行

image.png

添加一些权限

image.png

就达到了预期。

整个逻辑梳理一下,首先配置了域名,域名下配置了 webapi.json 路径,当用户访问路径的时候就会触发到触发器,触发器就会调动函数,函数过程中访问了 OSS 当中的文件并把文件内容反馈给用户。这样一个完整的功能就实现了。

image.png

看一下函数调用情况

在函数指标的地方就可以看到最近一个小时所有的调用情况,比如说使用了多少内存、执行了多少时间以及调用成功的情况,有没有失败。

相关文章
|
1月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
48 4
|
1月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
109 3
|
17天前
|
监控 前端开发 JavaScript
探索微前端架构:构建可扩展的现代Web应用
【10月更文挑战第29天】本文探讨了微前端架构的核心概念、优势及实施策略,通过将大型前端应用拆分为多个独立的微应用,提高开发效率、增强可维护性,并支持灵活的技术选型。实际案例包括Spotify和Zalando的成功应用。
|
16天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
31 1
|
23天前
|
JSON API 数据格式
如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架
本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了示例代码。通过这些步骤,读者可以快速上手构建自己的RESTful API。
27 2
|
1月前
|
监控 负载均衡 API
Web、RESTful API 在微服务中有哪些作用?
在微服务架构中,Web 和 RESTful API 扮演着至关重要的角色。它们帮助实现服务之间的通信、数据交换和系统的可扩展性。
48 2
|
1月前
|
人工智能 搜索推荐 API
用于企业AI搜索的Bocha Web Search API,给LLM提供联网搜索能力和长文本上下文
博查Web Search API是由博查提供的企业级互联网网页搜索API接口,允许开发者通过编程访问博查搜索引擎的搜索结果和相关信息,实现在应用程序或网站中集成搜索功能。该API支持近亿级网页内容搜索,适用于各类AI应用、RAG应用和AI Agent智能体的开发,解决数据安全、价格高昂和内容合规等问题。通过注册博查开发者账户、获取API KEY并调用API,开发者可以轻松集成搜索功能。
|
1月前
|
前端开发 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)结合时,这两者能显著增强应用的响应速度和用户体验,使项目更加高效、高大上。
51 2
|
1月前
|
前端开发 API 开发者
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
43 3
|
1月前
|
移动开发 前端开发 JavaScript
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
171 0