在 AWS 弹性 beantalk 上部署 Flask 应用程序
Posted
技术标签:
【中文标题】在 AWS 弹性 beantalk 上部署 Flask 应用程序【英文标题】:Deploying Flask app on AWS elastic beanstalk 【发布时间】:2014-11-29 19:51:11 【问题描述】:我一直在尝试使用 EBS 部署烧瓶应用程序。我按照指示 this link,但最后我得到this。还有什么方法可以像在其他 ec2 实例中一样 ssh 进入我的 ebs 卷。这是aws log 的链接。另外作为替代方案,我如何在不使用 ebs 的情况下部署我的应用程序?
also my app structure is :
root folder/
application.py
requirements.txt
uploads/
modules/
static/
templates/
_init_.py
views.py
daemon_tasker.py
queue.py
json_play.py
find_detail.py
更新
好吧,这可能看起来很奇怪。但是当我尝试在本地机器上从 requirements.txt 安装 pip 时,它会给出相同的错误,但是如果我在从 requirements.txt 安装 pip 之前 pip install redis 和六个,则不会产生错误。有什么方法可以在pip安装requirements.txt之前安装redis和6,或者可能是一些安装脚本可以在pip install requirements.txt结束后安装retask?
【问题讨论】:
似乎是部署过程中的问题..“retask”需要“redis”来构建自己,虽然redis之前安装正确,但这里发生了一些事情,因为Python在retask安装期间无法导入它. 关于是否可以询问 EC2 实例,答案是肯定的。只需转到 EC2 控制面板,就会有您的实例。您将知道如何使用控制面板中的连接按钮连接这些实例(您需要有一个密钥文件)。重要的是不要在 ssh 会话中进行永久性更改,因为如果一个实例发生故障,新创建的实例中不会出现这种更改(所有实例配置都应该在一个 eb 配置文件中).. 【参考方案1】:这似乎是您日志中的问题。 (您似乎已经在 cmets 中确定了它)。
File "retask/queue.py", line 32, in <module>
import redis
ImportError: No module named redis**strong text**
您的 requirements.txt 中有“redis==2.4.13”(或任何其他版本)吗?
另外你是对的,如果你想在所有实例上保留更改,你应该使用“.ebextensions”配置文件。
【讨论】:
是的,他有(版本 2.10.3),在第 17 行。根据 aws 日志,它似乎已安装(在重新安装包之前安装了 3 个包),并带有这两个警告:@987654322 @以上是关于在 AWS 弹性 beantalk 上部署 Flask 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
在 AWS 弹性 beantalk 上使用 webpacker gem 部署 rails react 应用程序
sqlite3.OperationalError:在 AWS 弹性 beantalk 上部署时 SQL 变量过多
如何将自签名证书分配给 AWS 弹性 beantalk 应用程序
在弹性 beantalk 上构建战争文件时从 AWS S3 复制文件