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 以内的),无需做任何改造即可使用函数计算服务。

猜你喜欢

转载自yq.aliyun.com/articles/692174
今日推荐