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

本文涉及的产品
简介: 典型案例3:十分钟搭建弹性可扩展的 Web API

Serverless AI训练营:课时10:典型案例3:十分钟搭建弹性可扩展的 Web API(一)

课程地址:https://developer.aliyun.com/trainingcamp/1eeaedf056f14ad98e9986c31068e939?spm=a2c6h.26142516.J_2566289780.1.37c67cbd7bCsFs


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


内容介绍:

一、基本概念

二、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

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
3月前
|
设计模式 缓存 前端开发
单页应用的架构与设计:打造高效可扩展的 Web 应用(下)
单页应用的架构与设计:打造高效可扩展的 Web 应用(下)
单页应用的架构与设计:打造高效可扩展的 Web 应用(下)
|
3月前
|
缓存 JavaScript 前端开发
单页应用的架构与设计:打造高效可扩展的 Web 应用(上)
单页应用的架构与设计:打造高效可扩展的 Web 应用(上)
单页应用的架构与设计:打造高效可扩展的 Web 应用(上)
|
3月前
|
前端开发 JavaScript 开发者
【开启微前端新时代】微前端:构建可扩展、可维护的现代 Web 应用
【开启微前端新时代】微前端:构建可扩展、可维护的现代 Web 应用
|
3月前
|
前端开发 Java 开发者
Spring MVC:构建高效、可维护、可扩展的Web应用程序
Spring MVC:构建高效、可维护、可扩展的Web应用程序
27 0
|
1月前
|
缓存 关系型数据库 API
后端开发:构建高效、可扩展的Web应用程序的关键
后端开发:构建高效、可扩展的Web应用程序的关键
22 0
|
7月前
|
设计模式 前端开发 Java
使用Java MVC开发高效、可扩展的Web应用
本文将介绍如何使用Java MVC(Model-View-Controller)模式来开发高效、可扩展的Web应用。我们将深入探讨MVC模式的核心概念,以及如何在Java中实现这一体系结构。通过合理地分离业务逻辑、用户界面和数据处理,我们可以构建出易于维护和扩展的Web应用程序。
|
1月前
|
XML JSON API
通过Flask框架创建灵活的、可扩展的Web Restful API服务
通过Flask框架创建灵活的、可扩展的Web Restful API服务
|
5月前
|
开发框架 安全 数据库
Python Web开发框架:构建高效、可扩展的Web应用程序
引言: 在当今数字化时代,Web应用程序的需求不断增长。为了满足这种需求,Python提供了多种Web开发框架,它们能够帮助开发者快速构建高性能、安全、可扩展的Web应用程序。本文将介绍一些常用的Python Web开发框架,并探讨它们的特点、优势以及适用场景。
|
7月前
|
缓存 监控 数据库
使用Ruby构建可扩展的Web应用程序
在当今科技驱动的世界中,Web应用程序成为了企业和个人进行业务活动、提供服务和与用户互动的重要方式。而Ruby作为一种简洁、优雅且易于学习的编程语言,已经成为许多开发者的选择。本篇博客将介绍如何使用Ruby构建可扩展的Web应用程序。
59 0
|
7月前
|
人工智能 JSON Serverless
课时10:典型案例3:十分钟搭建弹性可扩展的 Web API(二)
典型案例3:十分钟搭建弹性可扩展的 Web API
1071 0

热门文章

最新文章

  • 1
    Serverless 应用引擎产品使用之在函数计算中,数据库访问失败如何解决
    5
  • 2
    Serverless 应用引擎产品使用之在阿里云函数计算中发现没有NAC(Native Application Component)选项,且无法自己上传MOD(模块)如何解决
    6
  • 3
    Serverless 应用引擎操作报错合集之在阿里函数计算中,sd部署启动报错CAExited 报错信息“operation not permitted”如何解决
    5
  • 4
    Serverless 应用引擎操作报错合集之在阿里函数计算中,SD Controlnet Depth 运行过程中出现错误“urllib3 v2.0 only supports OpenSSL 1.1.1+”如何解决
    7
  • 5
    Serverless 应用引擎操作报错合集之在阿里云函数计算中,laravel zip包使用示例的start.sh脚本启动时出现错误代码如何解决
    7
  • 6
    Serverless 应用引擎操作报错合集之在阿里云函数计算中,服务器调用FC函数时出现 "[Errno -3] Temporary failure in name resolution)" 错误如何解决
    5
  • 7
    Serverless 应用引擎操作报错合集之在Serverless 应用引擎中,部署过程中遇到错误代码如何解决
    9
  • 8
    Serverless 应用引擎操作报错合集之在 Serverless 应用引擎中,遇到“没法通过 head 传递灰度标识”如何解决
    7
  • 9
    Serverless 应用引擎操作报错合集之在阿里函数计算中,函数执行超时,报错Function time out after如何解决
    12
  • 10
    Serverless 应用引擎操作报错合集之在阿里函数计算中,云函数怎么一直报错Function instance exited unexpectedly(code 1, message:operation not permitted) with start command 'php server.php '.如何解决
    8