Python Flask web 项目零改动迁移至阿里云函数计算

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 最近尝试了一下阿里云的函数计算,整体感觉很好,主要是省钱!下面就简单聊一下,如何将 Python Flask 的 web 项目迁移至函数计算。

引言

最近尝试了一下阿里云的函数计算,整体感觉很好,主要是省钱!下面就简单聊一下,如何将 Python Flask 的 web 项目迁移至函数计算。

创建一个银行卡校验的 RestAPI

文件名:index.py
代码:

# -*- coding: utf-8 -*-

from flask import request, jsonify, Flask
from fishbase.fish_data import CardBin

app = Flask(__name__)


@app.route("/")
def bankcard_check():
    req_param = request.args
    try:
        bankcard = req_param["bankcard"]
    except KeyError as _:
        res_error = {"error": "银行卡号为空"}
        return jsonify(res_error), 400

    is_true = CardBin.check_bankcard(bankcard)
    result_desc = "银行卡校验通过" if is_true else "银行卡校验失败"
    return jsonify({"result": result_desc})


if __name__ == "__main__":
    app.run()

这里银行卡校验的功能,用到了一个很好的 Python 函数包 fishbase ,里面还有很多很多好用的东西。

安装依赖:

pip install -t . flask fishbase

通过这种方式安装依赖,会把所有的依赖包下载到当前目录,如下:

image

启动服务:

# 通过 Python 直接启动
python index.py
# 或者通过 gunicorn 启动
gunicorn index:app

image

本地测试(以 gunicorn 启动为例,默认端口 8000):
image

至此,我们已经在本地创建了一个“银行卡校验的” RestAPI ,接下来我们把这个 API 迁移至阿里云函数计算

创建函数计算服务

这里就不过多介绍,参考阿里云官网文档即可,详见:https://help.aliyun.com/document_detail/74756.html

  • 创建服务
    image
  • 创建函数 ( python3,空白模板)
    image
  • 创建 HTTP 触发器
    image
  • 配置函数入口
    image
  • 权限配置(直接“下一步”)
  • 信息核对
    image
  • 创建
  • 在线调试
    image

费用说明

参考 https://help.aliyun.com/document_detail/54301.html

  • 调用次数费用
  • 执行时间费用
  • 网络费用为标准费用(同 ECS 等)。

示例:

假设一个函数每次调用的平均时间为 0.1 秒,占用的内存为 128MB, 调用 100 万次的费用约为 2.7185元

免费额度

参考: https://help.aliyun.com/document_detail/54301.html#Free
image

总结

费用低,改造成本较低,对于 Python Flask 的纯 API 项目(含所有依赖包,总工程 50M 以内的),无需做任何改造即可使用函数计算服务。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
10天前
|
开发框架 前端开发 JavaScript
利用Python和Flask构建轻量级Web应用的实战指南
利用Python和Flask构建轻量级Web应用的实战指南
33 2
|
16天前
|
弹性计算 Linux iOS开发
Python 虚拟环境全解:轻松管理项目依赖
本文详细介绍了 Python 虚拟环境的概念、创建和使用方法,包括 `virtualenv` 和 `venv` 的使用,以及最佳实践和注意事项。通过虚拟环境,你可以轻松管理不同项目的依赖关系,避免版本冲突,提升开发效率。
|
19天前
|
JSON API 数据格式
如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架
本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了示例代码。通过这些步骤,读者可以快速上手构建自己的RESTful API。
25 2
|
21天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
28 1
|
21天前
|
JSON API 数据格式
构建RESTful APIs:使用Python和Flask
构建RESTful APIs:使用Python和Flask
27 1
|
29天前
|
JSON 搜索推荐 API
Python的web框架有哪些?小项目比较推荐哪个?
【10月更文挑战第15天】Python的web框架有哪些?小项目比较推荐哪个?
48 1
|
1月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
25 4
|
1月前
|
JSON API 数据格式
使用Python和Flask构建简单的RESTful API
【10月更文挑战第12天】使用Python和Flask构建简单的RESTful API
45 1
|
1月前
|
API 网络架构 Python
使用Python和Flask构建简单的RESTful API
【10月更文挑战第12天】使用Python和Flask构建简单的RESTful API
34 0
|
安全 Java Python
sonarqube扫描Python项目代码
sonarqube扫描Python项目代码
sonarqube扫描Python项目代码