如何将传统 Web 框架迁移部署到 Serverless 架构?

2022年10月28日16:21:32 科技 1605

简介:与其说 Serverless 架构是一个新的概念,不如说它是一种全新的思路,一种新的编程范式。


但是原生的 Serverless 开发框架却非常少。以Web框架为例,目前主流的Web框架“均不支持Serverless模式部署”,因此我们一方面要尝试接触Serverless,一方面又没办法完全放弃传统框架,所以如何将传统框架更简单、更快速、更科学地部署到Serverless架构是一个值得探讨的问题。


请求集成方案

请求集成方案实际上就是把真实的API网关请求直接透传给FaaS平台,而不在中途增加任何转换逻辑。以阿里云函数计算的HTTP函数为例,当想要把传统框架(例如DjangoFlaskExpress、Next.js等)部署到阿里云函数计算平台,并且体验Serverless架构带来的按量付费、弹性伸缩等红利时,得益于阿里云函数计算的HTTP函数和HTTP触发器,使用者不仅可以快速、简单地将框架部署到阿里云函数计算平台,还可以获得和传统开发一样的体验。

例如以PythonBottle框架开发一个Bottle项目;

# index.py
import bottle
@bottle.route('/hello/<name>')
def index(name): 
return "Hello world"
if __name__ == '__main__': 
bottle.run(host='localhost', port=8080, debug=True)


之后,可以直接在本地进行调试。当想要把该项目部署到阿里云函数计算平台时,只需要增加一个default_app的对象即可:

app = bottle.default_app()


整个项目的代码如下所示:

# index.py
import bottle
@bottle.route('/hello/<name>')
def index(name): 
     return "Hello world"
app = bottle.default_app()
if __name__ == '__main__':
     bottle.run(host='localhost', port=8080, debug=True)


若在阿里云函数计算平台创建函数,将入口函数设置为index.app即可。除了Bottle框架之外,其他Web框架的操作方法是类似的,再以Flask为例:

# index.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world(): 
    return 'Hello, World!'
if __name__ == '__main__': 
    app.run( 
        host="0.0.0.0",
        port=int("8001")
)


在创建函数的时候设置入口函数为index.app,就可以保证该Flask项目运行在函数计算平台上。

当然,除了使用已有的语言化Runtime(指具体语言的运行时,例如Python3运行时、Node. js12运行时),我们还可以考虑使用Custom Runtime和Custom Container来实现,例如,一个Web项目完成之后,可以编写一个Bootstrap文件(在Bootstrap文件中写一些启动命令)。

例如要启动一个Express项目,把Express项目准备完成之后,可以直接创建Bootstrap文件,并将启动命令配置到该文件中:

#!/usr/bin/env bash
export PORT=9000
npm run star


阿里云函数计算还提供了更简单的Web框架迁移方案。如图所示是阿里云函数计算页面传统Web框架迁移功能示例。

如何将传统 Web 框架迁移部署到 Serverless 架构? - 天天要闻

阿里云函数计算页面传统Web框架迁移功能


选择对应的环境之后,只需要上传代码,做好简单的配置,即可让传统的Web框架迁移至阿里云函数计算平台。

如果通过开发者工具进行部署,以Serverless Devs为例,首先创建index.py:

# -*- coding: utf-8 -*-
from bottle import route, run
@route('/')
def hello(): 
    return "Hello World!"
run(host='0.0.0.0', debug=False, port=9000)


点击链接查看原文,获取更多福利!

https://developer.aliyun.com/article/1050376?spm=a2c6h.26396819.creator-center.14.5ef23e18lIMITC?utm_content=g_1000361766


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

科技分类资讯推荐

英特尔回应关闭汽车业务称将聚焦核心业务 - 天天要闻

英特尔回应关闭汽车业务称将聚焦核心业务

来源:知未科技【英特尔回应关闭汽车业务:重新聚焦战略重心】6月25日,据蓝鲸新闻,就英特尔被曝或关闭汽车业务的消息,英特尔方面向记者回应称,正在重新聚焦战略重心,强化核心客户端与数据中心产品组合和业务,以满足客户的需求。
折叠屏进入“vivo 时刻” - 天天要闻

折叠屏进入“vivo 时刻”

原创首发 | 金角财经(ID: F-Jinjiao)作者 | 海沃德假如从天而降一万块钱,但只能用来买一台手机,你会选传统的直屏手机,还是会考虑买一款科技感十足的大折叠屏手机?或许,选择直屏应该是一个不需要太多思考的选择。
荣耀Magic7Pro价格跳水,16GB+512GB突降1311元,2亿长焦+5850mAh - 天天要闻

荣耀Magic7Pro价格跳水,16GB+512GB突降1311元,2亿长焦+5850mAh

纵观如今智能手机市场的情况,各大品牌之间的竞争较为激烈,对此也就造成了各大品牌旗下的高端旗舰价格层面也是下调严重,这就比如说接下来要介绍的荣耀Magic 7 Pro这款旗舰就是如此,而就在如今市场中的表现完全是可以使用“价格跳水”来形容的,
Emme路特斯422T:来自巴西的争议“莲花” - 天天要闻

Emme路特斯422T:来自巴西的争议“莲花”

Emme路特斯422T这个名字对大多数汽车爱好者来说都相当陌生,但它却代表着汽车工业史上一个颇具争议的章节。这款诞生于1990年代末的车型,承载着巴西汽车制造商的雄心壮志,却也成为了一个关于品牌授权、设计抄袭和商业失败的典型案例。
西乡流塘开展“一键下单·心愿速达”数字化平台宣传 - 天天要闻

西乡流塘开展“一键下单·心愿速达”数字化平台宣传

为提升社区为老服务精准化、精细化水平,推动服务模式从“被动响应”向“主动精准”升级,深圳市宝安区西乡街道流塘社区党群社工近日在置地大厦开展“一键下单·心愿速达”长者分层级志愿帮扶服务项目暨困境群体兜底政策宣传活动,通过“数字化点单+分层分类帮扶+政策精准直达”模式,为社区长者织密“需求响应网”、搭建“...
小米汽车发布小米YU7购前准备攻略 明晚正式上市! - 天天要闻

小米汽车发布小米YU7购前准备攻略 明晚正式上市!

【CNMO科技消息】6月25日,小米汽车官方发布了针对即将上市的Xiaomi YU7的详细购前准备攻略,旨在帮助有意购车的用户提前做好各项准备,在车辆正式开售后能够快速、顺利地完成定购流程。 小米YU7将于6月26日晚19点正式发布。发布会结束后,用户即可在小米汽车App内开启预选配置功能,并保存心仪车型的配置方案。预计当晚22...
当贝 MP1 Max发布:点亮家庭影院的4K新星 - 天天要闻

当贝 MP1 Max发布:点亮家庭影院的4K新星

关注点赞,科技新品速递!2025年6月,当贝推出了旗下高端家用投影仪MP1 Max,专为家庭影院用户打造。这款投影仪以原生4K分辨率、3100 ISO流明亮度和专业级色彩表现为核心卖点,结合Google TV智能系统和强大的音效配置,为用户