在 AWS Elastic Beanstalk 上部署 Flask 与运行脚本有何不同?

2024-02-01

在 ec2 实例上部署 Flask 应用程序(换句话说,在任何计算机上运行脚本)和通过 AWS Elastic Beanstalk 部署 Flask 应用程序有什么区别?烧瓶部署文档 http://flask.pocoo.org/docs/0.12/deploying/说:

Flask 的内置服务器虽然轻量且易于使用,但并不 适合生产,因为它不能很好地扩展并且默认情况下服务 一次只有一个请求。一些可正确使用的选项 在生产中运行 Flask 记录在此处。

他们推荐的部署选项之一是 AWS Elastic Beanstalk。当我读完亚马逊的解释 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-flask.html然而,如何部署 Flask 应用程序,它们似乎are使用与 Flask 内置的完全相同的服务器应用程序,例如它是单线程的,因此无法处理同时请求。据我了解,Elastic Beanstalk 允许您部署多个副本,但它似乎仍然使用内置的 Flask 服务器应用程序。我缺少什么?


TL;DR 完全不同 - Elastic Beanstalkdoes使用比 Flask 开发服务器更好的明智的 WSGI 运行器!

然而,当我阅读 Amazon 关于如何部署 Flask 应用程序的解释时,似乎他们正在使用与 Flask 内置的完全相同的服务器应用程序

几乎,但不完全是。

你可以确认这个isn't通过自己删除 run-with-built-in-server 部分来解决这种情况 - 即示例中的以下内容:

if __name__ == "__main__":
    # Setting debug to True enables debug output. This line should be
    # removed before deploying a production app.
    application.debug = True
    application.run()

您将无法在本地自行运行它python application.py但它仍然可以在 EB 上愉快地运行!

EB Python 平台使用自己的 WSGI 服务器(带有 mod_wsgi 的 Apache,我上次查看)和一些假设/配置来查找可调用的 WSGI:

From 为 Elastic Beanstalk 配置 Python 项目 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-common-steps.html#python-common-configuring:

默认情况下,Elastic Beanstalk 会查找名为 application.py 的文件来启动您的应用程序。如果您创建的 Python 项目中不存在该文件,则需要对应用程序环境进行一些调整。

如果你签出的文档aws:elasticbeanstalk:container:python名称空间 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-specific.html#command-options-python您将看到可以将其配置为在其他地方查找 WSGI 应用程序:

WSGIPath:包含 WSGI 应用程序的文件。该文件必须具有可调用的“应用程序”。默认:application.py

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 AWS Elastic Beanstalk 上部署 Flask 与运行脚本有何不同? 的相关文章

  • 在 python 程序中合并第三方库的最佳实践是什么?

    下午好 我正在为我的工作编写一个中小型Python程序 该任务需要我使用 Excel 库xlwt and xlrd 以及一个用于查询 Oracle 数据库的库 称为CX Oracle 我正在通过版本控制系统 即CVS 开发该项目 我想知道围
  • Python 的键盘中断不会中止 Rust 函数 (PyO3)

    我有一个使用 PyO3 用 Rust 编写的 Python 库 它涉及一些昂贵的计算 单个函数调用最多需要 10 分钟 从 Python 调用时如何中止执行 Ctrl C 好像只有执行结束后才会处理 所以本质上没什么用 最小可重现示例 Ca
  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • 良好的 WiX 编辑器 [重复]

    这个问题在这里已经有答案了 我目前正在开发一个使用 WiX 创建 MSI 的项目 我过去在 Sourceforge 上使用 WiXEdit 来管理包含在 WiX 项目中的文件 因为它比直接操作 XML 稍微容易一些 但它仍然有点笨重 有谁知
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • 无法执行目标 org.apache.maven.plugins:maven-clean-plugin:2.4.1

    我正在做一个maven项目 我的IDE是Eclipse 我无法掌握的是当我在Eclipse中使用 clean X 时 它会报告以下错误 Apache Maven 3 0 4 r1232337 2012 01 17 16 44 56 0800
  • 将 Emacs AUCTeX 与 Sumatra PDF 同步

    有了我的这些行init el我能够将 Emacs LaTeX 缓冲区与 Sumatra 同步 setq TeX source correlate mode t setq TeX source correlate method synctex
  • 为什么我会出现 Keras 形状不匹配的情况?

    我正在遵循一个针对初学者的 Keras mnist 示例 我尝试更改标签以适合我自己的数据 该数据有 3 个不同的文本分类 我正在使用 to categorical 来实现这一点 形状对我来说看起来不错 但 fit 会出现错误 train
  • 查找数组中长度为 k 的所有子集

    给定一组 1 2 3 4 5 n 对于 n 个元素 我们需要找到长度为 k 的所有子集 例如 如果 n 4 且 k 2 则output将会 1 2 1 3 1 4 2 3 2 4 3 4 我什至不知道如何开始 我们不必使用内置的库函数 如
  • 你怎么会忘记 Laravel 中缓存的 Eloquent 模型呢?

    关于 Laravel 的理论问题在这里 所以我要做的缓存示例是 Article with comments gt remember 5 gt get 理想情况下 我希望有一个文章更新事件 当该模型的实例 已缓存 的 ID 更新时 我想忘记该
  • 存在哪些 ASP.NET MVC 示例项目? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 混合语言框架

    我有一个用 Objective C 编写的框架 我们称之为 MyKit 我用一些 Swift 类对其进行了扩展 我正在尝试使用以下文档来理解它 https developer apple com library ios documentat
  • OpenGL ES 片段着色器可以更改片段的深度值吗?

    OpenGL ES 2 0 中的片段着色器可以更改像素的 Z 值 深度 吗 在 OpenGL ES 2 0 中这是如何实现的 No gl FragDepth 这是 GLSL 桌面版本的一部分 在 OpenGL ES 中不存在 但是 您可以检
  • NHibernate 将类属性映射到行而不是列

    是否可以映射一个类 其中每个属性存储为表中的行而不是列 该场景是我们将全局选项保存到数据库的情况 我们将选项存储在 选项 类中 每个选项都有一个属性 即 展开菜单 退出时保存 等 我们不想将每个选项存储在其自己的表列中 而是希望有一个表 其
  • 如何获取包含占位符的属性的原始值?

    我试图在我的 properties 文件之一中定义以下属性 personExpression person surname 然后由配置类读取 Configuration public class TemplateConfig Autowir
  • 在 Chrome 扩展程序中获取 JSON

    我的 chrome 扩展有一个小问题 我只是想从另一台服务器获取 JSON 数组 但清单 2 不允许我这样做 我尝试指定content security policy 但 JSON 数组存储在没有 SSL 证书的服务器上 那么 如果不使用清
  • 更改 varchar 列的最大长度?

    我正在尝试将 varchar 列的长度从 255 个字符更新为 500 个字符 而不会丢失内容 我之前已经删除并重新创建过表 但我从未接触过 alter 语句 我相信我需要使用它来执行此操作 我在这里找到了文档 更改表 Transact S
  • Python——使用 Selenium 打开多个选项卡

    我正在使用Python 我正在尝试在 Chrome 上打开两个选项卡 每个选项卡都指向不同的网站 这是我的代码 from selenium import webdriver from selenium webdriver common ke
  • 将视频添加到 YouTube 上用户最喜欢/喜欢的播放列表

    目的是使用 YouTube API 创建一个收藏 喜欢按钮 当用户单击该按钮时 视频将保存到用户的 收藏 喜欢 播放列表中 就像您在自己的网站上实施 Facebook Like 按钮时的工作原理一样 这本质上是对发布的出色解决方案的后续问题
  • 在 google oauth 后,如何在不使用 webview 的情况下将用户重定向回我的应用程序?

    谷歌决定禁止通过 webview 进行 oauth 给我带来了巨大的麻烦 迁移到替代方案是一个漫长而困难的过程 我目前正在使用建议的 AppAuth 库 并且我收到用户抱怨 如果不将帐户添加到 chrome 他们的设备 这作为据我所知 如果
  • 地址簿联系人排序

    我有下面的代码 我设法从地址簿中列出了姓名和电话号码 但如何按名字对其进行排序 ABAddressBookRef addressBookRef ABAddressBookCreateWithOptions NULL NULL abConta
  • 多线程 Grep

    我有以下包含 30233088 字符串的 大 文件 head mystringfile txt GAATGAACACGAAGAA GAATGAACACGAAGAC GAATGAACACGAAGAG GAATGAACACGAAGCA cat
  • 为什么厨师无法解析我的食谱?

    Intro我正在学习 Chef 以自动化工作中的服务器管理 我从下载了 Chefdk 3 0here https downloads getchef com chef dk windows 现在我正在尝试使用厨师制作我的第一本食谱 重要的我
  • .npm 缓存与 node_modules 大小

    在构建节点应用程序时 我们使用 npm 缓存 如下所示 npm install cache tmp node cache npm prefer offline 但是我有理由相信 缓存无法正常工作 因为 tmp node cache du s
  • 在 AWS Elastic Beanstalk 上部署 Flask 与运行脚本有何不同?

    在 ec2 实例上部署 Flask 应用程序 换句话说 在任何计算机上运行脚本 和通过 AWS Elastic Beanstalk 部署 Flask 应用程序有什么区别 烧瓶部署文档 http flask pocoo org docs 0