引言

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

创建一个银行卡校验的 RestAPI

文件名:index.py
代码:

# -*- coding: utf-8 -*-from flask import request, jsonify, Flask
from fishbase.fish_data import CardBinapp = Flask(__name__)@app.route("/")
def bankcard_check():req_param = request.argstry:bankcard = req_param["bankcard"]except KeyError as _:res_error = {"error": "银行卡号为空"}return jsonify(res_error), 400is_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

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

启动服务:

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

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

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

创建函数计算服务

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

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

费用说明

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

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

示例:

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

免费额度

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

总结

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

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

  1. 基于阿里云函数计算实现需要用到超大依赖包的 Python 无服务器计算

    文章目录 引言 一.阿里云函数计算是什么? 开发流程 函数计算的触发调用 函数计算运行实例的生命周期 二.示例应用的架构及简介 三.具体开发部署步骤所遇到的坑和~~避坑指南~~ 坑1. 超大依赖包的部 ...

  2. Serverless 实战 —— 阿里云函数计算配合SpringBoot项目

    阿里云函数计算配合SpringBoot项目 DecentAnt 2019-06-24 15:16:13 浏览2862 作者:DecentAnt 首先要弄清楚,阿里云的函数计算项目和SpringBoot ...

  3. dockerfile构建一个(python+flask+html)镜像 + 上传到阿里云私有仓库 + 部署到k8s---全过程

    前言 因为之前根据一些网上的教程一个个部分实践过整个部署流程,但都是根据现有的程序/ymal文件等进行创建部署,未能根据自己特定的项目进行部署.因此,这篇博文,打算完整部署一个自己编写的python+ ...

  4. API接口开发其实特简单,Python Flask Web 框架教程来了

    大家好,日常工作中,无论你是数据工程师.数据挖掘工程师,甚至数据分析人员,都不可避免的与他人进行数据交互,API接口提供数据是最常见的形式. 今天我给大家分享 Python Flask Web 框架教 ...

  5. python项目部署nginx_详解使用Nginx和uWSGI配置Python的web项目的方法

    基于python的web项目,常见的部署方法有: fcgi:用spawn-fcgi或者框架自带的工具对各个project分别生成监听进程,然后和http服务互动. wsgi:利用http服务的mod_ ...

  6. 使用宝塔搭建环境,以及把自己本地的Web项目通过宝塔发布到远程云服务器上

    文章目录 使用宝塔搭建环境,以及把自己本地的Web项目通过宝塔发布到远程云服务器上 XSheel连接到远程云服务器之后使用宝塔搭建环境 使用宝塔搭建服务器的环境 什么是搭建服务器环境 1.安装宝塔 2 ...

  7. 数据库表迁移到阿里云的方法有哪些

    数据库表迁移到阿里云的方法有哪些,数据软件整体迁移. 服务器的空间大小.稳定性.安全性以及其他因素会影响网站的优化.许多企业在网站运行过程中,这些因素的影响使得企业不得不更换一个新的服务器.如何正确更 ...

  8. 全民直播CTO张云龙:已全面迁移至阿里云

    全民直播CTO张云龙:已全面迁移至阿里云 "建设一家大型的直播平台充满了技术挑战,毫不夸张的说,直播平台囊括了几乎所有的主流互联网技术--Web站点.APP客户端.音视频编解码.即时聊天.充 ...

  9. 自建Hive数据仓库跨版本迁移到阿里云Databricks数据洞察

    简介:客户在IDC或者公有云环境自建Hadoop集群构建数据仓库和分析系统,购买阿里云Databricks数据洞察集群之后,涉及到数仓数据和元数据的迁移以及Hive版本的订正更新. 直达最佳实践:[自 ...

最新文章

  1. python3实现字符串的全排列的方法(无重复字符)
  2. s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(三 APP应用)
  3. 关于datediff(year,开始日期,结束日期)中year格式的说明,特别注意year两边不能加引号,否则报错...
  4. tkinter的GUI设计:界面与逻辑分离(三)-- 多页面
  5. linux阻塞原语,Linux中的内存原语是什么?
  6. Effective Java~38. 用接口模拟可扩展的enum
  7. 案例 月工作列表 c# 1614099857
  8. opencv函数medianBlur( );
  9. hiho编程练习赛20
  10. Linux小知识收集(不断更新)
  11. Entity Framework 4.0 FK Properties FK Associations
  12. JSP旅游景点网站系统myeclipse开发计算机程序web结构java编程网页源码
  13. win10 企业版激活
  14. 初学者零基础如何快速入门学习平面设计
  15. ARM指令集 mov指令,ldr=伪指令,地址访问指令ldr,str,位运算指令and,orr,eor,bic,逻辑位移指令lsl,lsr
  16. 切线空间(Tangent Space)法线映射(Normal Mapping)
  17. 软件开发中的瀑布模型
  18. 差异表达分析(DEG)时 row.names'里不能有重复的名字 的解决方案
  19. [附源码]java毕业设计时事资讯平台
  20. ORACLE SQL格式化小数点

热门文章

  1. 读《程序员必读的职业规划书》
  2. notepad++的好用快捷键整理
  3. 五个方法成为更好的程序员
  4. JAVA学习篇--Servlet详解
  5. 听说最近你读过不少书
  6. 探索 Python、机器学习和 NLTK 库 开发一个应用程序,使用 Python、NLTK 和机器学习对 RSS 提要进行分类
  7. 线性代数:第四章 向量组的线性相关性(2)向量空间 线性方程组解的结构
  8. 小游戏“终结者”程序的设计与实现
  9. 跟我一起写 Makefile(十)
  10. 鸟哥的Linux私房菜(基础篇)-第一章、Linux是什么(一.2. Torvalds的Linux发展)