在 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 复制文件

将 Docker 映像部署到 AWS 弹性 beantalk

在弹性 beantalk AWS 中部署应用程序