- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在 EB 实例上“无限期”运行 python 脚本,部署后自动运行(我不想通过 SSH 登录)。为此,我想我应该运行
source /opt/python/run/venv/bin/activate && nohup python myscriptname.py &
部署 Elastic Beanstalk 实例之后。但是我应该在哪里放置上述命令来自动运行此部署后操作?
我看过How do I install a Python script on Amazon's Elastic Beanstalk?但我认为 cron 工作不适合我。
我之前使用过 container_commands
,但它们似乎运行预部署。
Container commands run after the application and web server have been set up and the application version archive has been extracted, but before the application version is deployed.
如何运行部署后脚本?
最佳答案
与往常一样,在 AWS 中可以通过多种方法来执行此操作。您可以启动一个实例,进行自定义,然后从此镜像创建 AMI。然后你可以告诉 beanstalk 使用这个 custom AMI
或者可以使用ebextensions在创建和应用程序重新启动时自定义您的实例。我目前正在使用它来安装(如果尚未安装)logstash 并在我的应用程序启动时下载最新的 GeoLiteCity 数据库。
这是文档中的示例
container_commands:
collectstatic:
command: "django-admin.py collectstatic --noinput"
01syncdb:
command: "django-admin.py syncdb --noinput"
leader_only: true
02migrate:
command: "django-admin.py migrate"
leader_only: true
99customize:
command: "scripts/customize.sh"
关于python - 如何在 Elastic Beanstalk 上启动时运行一次 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40372506/
我是一名优秀的程序员,十分优秀!