我需要在python中实现一个简单的web服务-这是我第一次使用web服务和RESTAPI,所以我想了解什么环境和工具适合我的需求。在我的web服务中,我需要从数据库中读取一些数据,执行一些简单的逻辑,并支持来自另一个应用程序的GET调用(qualtrics(。
我阅读并使用python实现了一个简单的测试web服务,使用了一些有用的博客,例如:在python中构建一个基本的RestFul API | Codementor但我需要一个真正的服务器,这样我就可以从外部应用程序调用API。
当我在寻找一个长期的解决方案时,我认为使用AWS EC2实例可能是一个很好的服务器解决方案。我尝试在博客中使用一些指南来实现它,例如:在AWS EC2上部署Flask应用程序| Codementor
然而,由于我是新手,遇到了一些实现/编辑错误(例如处理wsgi文件(,而且我是一个windows用户,ubuntu的东西并不总是容易习惯的,我想知道什么是最适合我需求的框架?有没有推荐的流程,我可以在其中实现我的简单python代码,并以更方便的方式将其连接到一个小型服务器(AWS EC2实例或任何其他推荐的实例(?
另一个重要的注意事项是,我只需要不时地运行它,这个web服务器和web服务不应该持续运行(这就是为什么我认为aws虚拟实例最适合(。
首先,我的建议是看看Elastic Beanstalk、Fargate和带Lambda的API网关。
您可以使用Elastic Beanstalk轻松提供开箱即用的AWS环境,在Flask中托管您的python应用程序,只需最少的配置:
- 将烧瓶应用程序部署到Elastic Beanstalk
另一件需要考虑的事情是将您的python应用程序开发为docker容器,使用例如tiangolo/uwsgi nginx flask作为基本映像。这将允许您在本地主机上轻松地使用中,然后将您的图像移动到AWS进行托管。
您可以在Fargate上托管它以节省配置容器实例的时间,也可以在Beanstalk上托管它,后者也支持docker。
另一种选择是完全无服务器并使用api网关和lambda开发Python RESTAPI。