在 AWS Elastic Beanstalk 上运行临时脚本

Posted

技术标签:

【中文标题】在 AWS Elastic Beanstalk 上运行临时脚本【英文标题】:Run ad-hoc scripts on AWS Elastic Beanstalk 【发布时间】:2014-04-16 12:29:21 【问题描述】:

我正在尝试在 AWS Elastic Beanstalk 上部署 Flask 应用程序。我需要临时运行自定义 Python 脚本。我之前使用过 Heroku,我需要做的就是使用 heroku 工具带发出这个命令:

heroku 运行 doStuff

其中 doStuff 是我的 Python 模块的名称。

是否可以使用 AWS Elastic Beanstalk 中的 eb 工具来实现这一点?

另外,我假设我必须通过 SSH 连接到运行应用程序的 EC2 实例并直接在那里运行命令。如果是这种情况,我将在 EC2 实例的哪个位置找到我的应用程序的文件?

谢谢

【问题讨论】:

【参考方案1】:

看起来您将不得不通过 SSH 连接并运行您的脚本。 您可以在此处找到您部署的应用程序版本:/opt/python/current

另一种选择是在您的烧瓶应用程序中将自定义(可能是秘密)URL 映射到此。当您点击 URL 时,执行所需的命令。

另一方面,如果在应用部署/服务器重启时需要脚本,您可以使用 .ebextensions:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-commands

您可以在此处设置要在应用代码运行之前运行的各种操作。

【讨论】:

感谢索尼。我还有一个问题是我无法使用需求文件安装 Scipy 和 Numpy。我的想法是通过 SSH 连接到 EC2 实例并使用 yum 命令安装它。但是,看起来我的 Flask 应用程序正在 EC2 上的虚拟环境中运行。我现在安装了 Scipy,但我的 Flask 应用程序可以找到它。你知道如何在虚拟环境中使用 yum 命令安装 Scipy(和其他软件包)吗? @Johan,您可以通过 .ebextensions 执行此操作。在这里,您可以在应用程序/服务器启动时运行任何命令。你可以在这里使用 yum 命令并安装你需要的任何东西。 docs.aws.amazon.com/elasticbeanstalk/latest/dg/…

以上是关于在 AWS Elastic Beanstalk 上运行临时脚本的主要内容,如果未能解决你的问题,请参考以下文章

在 AWS Elastic Beanstalk 上扩展 Magento

如何在 AWS Elastic Beanstalk 上设置 HTTPS

如何在 AWS Elastic Beanstalk 上设置 HTTPS

在 AWS Elastic Beanstalk 上运行节点和反应

如何使用 aws cli 在 Elastic Beanstalk 上上传和部署?

在aws elastic beanstalk上上传文件?