Python应用迁移 | 学习笔记

简介: 快速学习 python 应用迁移

发者学堂课程【存量应用快速迁移python 应用迁移】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/342/detail/4019


Python应用迁移

 

容器型——支持语言JAVA、PHP、Python

容器型搬站,支持存量应界尽可能少或者无需任何侵入性修改即可通过本平台把应用部署到Serverless计算服务当中。基于容器统一的交付方式,应用可以根据实际需要选用:FC、SAE、ASK计算服务。

计算型——支持语言:Python、Node

计算型搬站,基于FC的函数型Serverless,本平台提供NodeJS、Python两种语言的Serverless框架,由框架提供路由分发功能,让存量应用无需修改即可通过本平台部署到FC这种计算服务中,享受FC先进技术红利。

 

Python应用迁移提供了两种方案,一种是基于容器型的迁移,一种是基于Serverless框架的迁移,这里会向大家分别介绍两种方案。

首先是基于容器型的迁移:

点击云开发平台的快速开始页面选择应用搬站,选择语言为python、容器型的一个迁移方式,点击下一步输入项目名称,比如说python基于容器,之后都选默认,点击完成创建。

81.png

 

完成创建之后,会默认到应用详情的搬站帮助页面。之后直接选择开发部署,在开发部署里面打开IDE,打开IDE之后,已经内置了一个最简单的python项目。这个项目分为几个部分,第一部分就是app.py,这是入口文件,它是一个fast API框架的项目,框架项目很简单,它提供8020端口,然后提供了几个路由,返回hello word。

 

基于容器型搬站是如何操作的:

首先提供了默认的Dockerfile,采用的是云开发平台提供的3.6版本的python镜像,这个镜像内置了许多阿里云的SDK以及相关的运行环境,所以不用再设置自己的镜像,只需要将当前目录全都copy到容器中,然后gunicorn,它是一个管理工具,依次安装当前的requirements,导出8080端口。注意一定要导出8080端口,给shell脚本添加执行权限,最终执行入口文件,start.sh。大家是没看到有start文件的,其中奥秘在prepare脚本中。

82.png

 

prepare脚本是有很多注释的,首先提到prepare.sh文件为云开发平台构建用户自定义镜像的前置操作,处理环境变量以及启动命令等操作,所以这里面包含的一些代码是不需要改动的,改动的可能只有自定义命令。比如@cha“gunicorn application

-0.0.0.0.0:8080-w&-k uvicorn.workers.UvicornWorker” >>start.sh

gunicorn基础命令,8080端口,启动四个进程,后使用uricornworker启动命令打到start.sh文件里,start.sh实际是Dockerfile启动入口文件,这样就可以将原先的项目直接打到容器中,实现无缝运行。

83.png

 

如何进行部署:

可以采用本地命令在本地调试查看迁移是否成功。当项目迁移成功之后,直接在平台进行部署,点击左上角插件部署功能,选择日常环境,灰度设置为100%,之后点击部署。部署成功之后会有一个测试域名,点击测试域名就可以看到项目输出Hello World。

84.png

 

接下来介绍基于框架的迁移方案:

进入快速开始页面,点击应用搬站,选择Python、计算型

85.png

 

点击下一步,设置应用名称、应用介绍,计算服务,可根据需求进行设置。

点击开发部署,打开IDE,拖拽已有的FastAPI项目,它的项目跟刚刚容器型的项目几乎是一样的,输出的是“Hello World”。

拖拽之后查看readme,readme中提到针对不同框架的迁移文档,它支持django框架迁移、flask迁移以及fastAPI迁移,这里按照fastAPI提供的迁移文档进行操作。

 

首先将Serverless_config_fastapi.py文件重命名为

Serverless_config.py文件,之后将module入口设置为应用文件入口。

“module”:“app”

“module.entry”:“app”

Module文件对应的是app.py文件,module.entry文件对应的是内部导出的app对象。

添加依赖fastapi、uvicorn、uvloop以及httptools,注意要有两个内置的依赖,分别是gunicorn和request_unixsocket,还有uvloop只有0.14.0版本可以运行在Python3.6环境下,所以需要手动指定版本号,指定完依赖之后安装依赖。

安装依赖,可以直接使用pip install命令

安装完成之后进行测试,打开插件选择测试,点击按钮之后会输出一列数据,可以看到它输出了“Hello World”且给了测试连接。

网络异常,图片无法展示
|
 

 

点击测试连接,发现“Hello World”可以正常访问。

当测试完成之后可以直接进行部署:选择插件中的部署,直接点击部署,这样就完成了Python项目迁移。

 

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
11月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
978 0
|
数据采集 监控 Java
Python 函数式编程的执行效率:实际应用中的权衡
Python 函数式编程的执行效率:实际应用中的权衡
454 102
|
11月前
|
机器学习/深度学习 算法 安全
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
756 6
|
11月前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
664 0
|
12月前
|
数据采集 存储 数据可视化
Python网络爬虫在环境保护中的应用:污染源监测数据抓取与分析
在环保领域,数据是决策基础,但分散在多个平台,获取困难。Python网络爬虫技术灵活高效,可自动化抓取空气质量、水质、污染源等数据,实现多平台整合、实时更新、结构化存储与异常预警。本文详解爬虫实战应用,涵盖技术选型、代码实现、反爬策略与数据分析,助力环保数据高效利用。
634 0
|
存储 程序员 数据处理
Python列表基础操作全解析:从创建到灵活应用
本文深入浅出地讲解了Python列表的各类操作,从创建、增删改查到遍历与性能优化,内容详实且贴近实战,适合初学者快速掌握这一核心数据结构。
798 0
|
中间件 机器人 API
Python多态实战:从基础到高阶的“魔法”应用指南
Python多态机制通过“鸭子类型”实现灵活接口,使不同对象统一调用同一方法,自动执行各自行为。它简化代码逻辑、提升扩展性,适用于数据处理、策略切换、接口适配等场景。掌握多态思维,能有效减少冗余判断,使程序更优雅、易维护。
536 0
|
存储 监控 安全
Python剪贴板监控实战:clipboard-monitor库的深度解析与扩展应用
本文介绍了基于Python的剪贴板监控技术,结合clipboard-monitor库实现高效、安全的数据追踪。内容涵盖技术选型、核心功能开发、性能优化及实战应用,适用于安全审计、自动化办公等场景,助力提升数据管理效率与安全性。
392 0
|
存储 监控 安全
Python剪贴板监控实战:clipboard-monitor库的深度解析与扩展应用
本文介绍如何利用Python的clipboard-monitor库实现剪贴板监控系统,涵盖文本与图片的实时监听、防重复存储、GUI界面开发及数据加密等核心技术,适用于安全审计与自动化办公场景。
451 0
|
数据采集 API 调度
Python爬虫框架对比:Scrapy vs Requests在API调用中的应用
本文对比了 Python 中 Scrapy 与 Requests 两大爬虫框架在 API 调用中的差异,涵盖架构设计、调用模式、性能优化及适用场景,并提供实战建议,助力开发者根据项目需求选择合适工具。

推荐镜像

更多