2016-11-02 20 views
1

EBインスタンスでPythonスクリプト '無期限に'を実行したい場合は、一度デプロイすると(私はSSHに入れたくありません)。これを行うには、私は、Elastic Beanstalkでインスタンスが展開され後Elastic Beanstalkで起動時に一度Pythonスクリプトを実行するには

source /opt/python/run/venv/bin/activate && nohup python myscriptname.py & 

を実行すべきだと思います。しかし、私は上記のコマンドをどこに置いてこのポストデプロイメントを自動的に実行するのですか?

私はHow do I install a Python script on Amazon's Elastic Beanstalk?を見ましたが、私はcronの仕事が私に適しているとは思わない。

以前はcontainer_commandsを使用していましたが、デプロイ前に実行されているようです。

アプリケーションとWebサーバーが設定され、アプリケーションバージョンのアーカイブが抽出された後で、アプリケーションバージョンが展開される前にコンテナコマンドが実行されます。

デプロイメント後スクリプトを実行するにはどうすればよいですか?

答えて

1

いつもAWSでこれを行う方法はいくつかあります。インスタンスを開始し、カスタマイズしてから、このイメージからAMIを作成することができます。あなたはこれを使用するために豆の豆を言うことができる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" 
関連する問題