Python Flask web 项目零改动迁移至阿里云函数计算
引言
最近尝试了一下阿里云的函数计算,整体感觉很好,主要是省钱!下面就简单聊一下,如何将 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 项目零改动迁移至阿里云函数计算相关推荐
- 基于阿里云函数计算实现需要用到超大依赖包的 Python 无服务器计算
文章目录 引言 一.阿里云函数计算是什么? 开发流程 函数计算的触发调用 函数计算运行实例的生命周期 二.示例应用的架构及简介 三.具体开发部署步骤所遇到的坑和~~避坑指南~~ 坑1. 超大依赖包的部 ...
- Serverless 实战 —— 阿里云函数计算配合SpringBoot项目
阿里云函数计算配合SpringBoot项目 DecentAnt 2019-06-24 15:16:13 浏览2862 作者:DecentAnt 首先要弄清楚,阿里云的函数计算项目和SpringBoot ...
- dockerfile构建一个(python+flask+html)镜像 + 上传到阿里云私有仓库 + 部署到k8s---全过程
前言 因为之前根据一些网上的教程一个个部分实践过整个部署流程,但都是根据现有的程序/ymal文件等进行创建部署,未能根据自己特定的项目进行部署.因此,这篇博文,打算完整部署一个自己编写的python+ ...
- API接口开发其实特简单,Python Flask Web 框架教程来了
大家好,日常工作中,无论你是数据工程师.数据挖掘工程师,甚至数据分析人员,都不可避免的与他人进行数据交互,API接口提供数据是最常见的形式. 今天我给大家分享 Python Flask Web 框架教 ...
- python项目部署nginx_详解使用Nginx和uWSGI配置Python的web项目的方法
基于python的web项目,常见的部署方法有: fcgi:用spawn-fcgi或者框架自带的工具对各个project分别生成监听进程,然后和http服务互动. wsgi:利用http服务的mod_ ...
- 使用宝塔搭建环境,以及把自己本地的Web项目通过宝塔发布到远程云服务器上
文章目录 使用宝塔搭建环境,以及把自己本地的Web项目通过宝塔发布到远程云服务器上 XSheel连接到远程云服务器之后使用宝塔搭建环境 使用宝塔搭建服务器的环境 什么是搭建服务器环境 1.安装宝塔 2 ...
- 数据库表迁移到阿里云的方法有哪些
数据库表迁移到阿里云的方法有哪些,数据软件整体迁移. 服务器的空间大小.稳定性.安全性以及其他因素会影响网站的优化.许多企业在网站运行过程中,这些因素的影响使得企业不得不更换一个新的服务器.如何正确更 ...
- 全民直播CTO张云龙:已全面迁移至阿里云
全民直播CTO张云龙:已全面迁移至阿里云 "建设一家大型的直播平台充满了技术挑战,毫不夸张的说,直播平台囊括了几乎所有的主流互联网技术--Web站点.APP客户端.音视频编解码.即时聊天.充 ...
- 自建Hive数据仓库跨版本迁移到阿里云Databricks数据洞察
简介:客户在IDC或者公有云环境自建Hadoop集群构建数据仓库和分析系统,购买阿里云Databricks数据洞察集群之后,涉及到数仓数据和元数据的迁移以及Hive版本的订正更新. 直达最佳实践:[自 ...
最新文章
- python3实现字符串的全排列的方法(无重复字符)
- s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(三 APP应用)
- 关于datediff(year,开始日期,结束日期)中year格式的说明,特别注意year两边不能加引号,否则报错...
- tkinter的GUI设计:界面与逻辑分离(三)-- 多页面
- linux阻塞原语,Linux中的内存原语是什么?
- Effective Java~38. 用接口模拟可扩展的enum
- 案例 月工作列表 c# 1614099857
- opencv函数medianBlur( );
- hiho编程练习赛20
- Linux小知识收集(不断更新)
- Entity Framework 4.0 FK Properties FK Associations
- JSP旅游景点网站系统myeclipse开发计算机程序web结构java编程网页源码
- win10 企业版激活
- 初学者零基础如何快速入门学习平面设计
- ARM指令集 mov指令,ldr=伪指令,地址访问指令ldr,str,位运算指令and,orr,eor,bic,逻辑位移指令lsl,lsr
- 切线空间(Tangent Space)法线映射(Normal Mapping)
- 软件开发中的瀑布模型
- 差异表达分析(DEG)时 row.names'里不能有重复的名字 的解决方案
- [附源码]java毕业设计时事资讯平台
- ORACLE SQL格式化小数点
热门文章
- 读《程序员必读的职业规划书》
- notepad++的好用快捷键整理
- 五个方法成为更好的程序员
- JAVA学习篇--Servlet详解
- 听说最近你读过不少书
- 探索 Python、机器学习和 NLTK 库 开发一个应用程序,使用 Python、NLTK 和机器学习对 RSS 提要进行分类
- 线性代数:第四章 向量组的线性相关性(2)向量空间 线性方程组解的结构
- 小游戏“终结者”程序的设计与实现
- 跟我一起写 Makefile(十)
- 鸟哥的Linux私房菜(基础篇)-第一章、Linux是什么(一.2. Torvalds的Linux发展)