【问题标题】:Implementing web service with python on a virtual AWS instance在虚拟 AWS 实例上使用 python 实现 Web 服务
【发布时间】:2020-04-11 02:12:06
【问题描述】:

我需要在 python 中实现一个简单的 Web 服务——这是我第一次使用 Web 服务和 REST API,所以我想了解什么环境和工具可以满足我的需求。在我的 Web 服务中,我需要从数据库中读取一些数据,执行一些简单的逻辑,并支持来自另一个应用程序(qualtrics)的 GET 调用。

我使用一些有用的博客阅读并使用 python 实现了一个简单的测试 Web 服务,例如:Building a Basic RestFul API in Python | Codementor 但我需要一个真正的服务器,以便我可以从外部应用程序调用 API。

在寻找长期解决方案时,我认为使用 AWS EC2 实例可能是一个很好的服务器解决方案。我尝试使用博客中的一些准则来实现它,例如:Deploy a Flask app on AWS EC2 | Codementor

但是,由于我是新手,遇到了一些实现/编辑错误(例如处理 wsgi 文件),而且我是 Windows 用户,而且 ubuntu 的东西并不总是很容易习惯,所以我是想知道什么是满足我需求的最佳框架? 是否有任何推荐的流程让我能够实现我的简单 python 代码并以更方便的方式将其连接到小型服务器(AWS EC2 实例或任何其他推荐的服务器)?

另一个重要的注意事项 - 我只需要不时运行它,这个 Web 服务器和 Web 服务不应该持续运行(这就是我认为 aws 虚拟实例最适合的原因)。

【问题讨论】:

  • 这很宽泛,可能离题,请参阅help centerHow to Ask
  • @AMC 我认为它的主题。在我看来,这个问题是关于架构的,amazon-web-services 标签说“关于编程和 架构 的问题正在讨论中。”

标签: python amazon-web-services rest web-services


【解决方案1】:

首先,我的建议是查看 Elastic Beanstalk、Fargate 和 API Gateway 与 Lambda。

您可以使用 Elastic Beanstalk 轻松预置开箱即用的 AWS 环境,以在 Flask 中托管您的 python 应用程序,只需最少的配置:

要考虑的另一件事是将您的 python 应用程序开发为一个 docker 容器,使用例如 tiangolo/uwsgi-nginx-flask 作为基础映像。这将允许您在本地主机上轻松使用,然后只需将您的图像移动到 AWS 进行托管。

您可以将其托管在 Fargate 上以节省配置容器实例的时间,或者将其托管在同样支持 docker 的 Beanstalk as well 上。

另一个选择是完全无服务器并使用API Gateway and lambda 开发您的Python REST api。

【讨论】:

  • 谢谢@Marcin!这很棒!在深入研究这些选项之前,我应该注意这些选项中的任何重要限制吗?
  • @user3017075 没问题。如果答案有帮助,将不胜感激。不知道为什么它在没有给出理由的情况下被否决。
猜你喜欢
  • 2019-11-18
  • 1970-01-01
  • 1970-01-01
  • 2019-11-03
  • 2014-07-18
  • 2021-08-23
  • 2018-01-22
  • 2014-03-31
  • 2018-01-09
相关资源
最近更新 更多