0

同様の質問がhereと尋ねられましたが、ソリューションは展開と同じ環境にシェルアクセスを与えません。 os.environをシェルから調べると、環境変数は表示されません。DjangoのElastic Beanstalk:manage.pyシェルを実行し、環境変数にアクセスできる方法はありますか?

環境にmanage.py shellを実行する方法はありますか?

PS:ちょっとした質問として、EBSのマントラはeb sshの使用をやめるべきだと知っていますが、一度限りの管理スクリプトを実行するとどうなりますか(デプロイするたびに実行する必要はありません)

答えて

0

何かを実行する必要があるケースの1つは、dbスキーマの移行です。通常は、その情報をデータベースに保存します。だから、dbを使用して、何かが一度だけ起動されたことを同期/確実にすることができます。

個人的に私はeb sshを使用することに対して何もしていませんが、私はそれに問題があります。 CI/CDを使用する場合、その手動操作はルールに反します。

あなたはBeanstalkのWWW/APIの部分を参照しているようです。あなたはかなり頻繁に何かが必要な場合...多分労働者はより適していますか?ここで問題となるのは、APIが最初にデプロイされると間違ったスキーマを持つということです。

一般的に、EC2を使用しているため、user dataにはサービスのスピンアップ情報が格納されています。そこであなたはあなたの "もの"を置くことができます。それでも同期をとる必要があります。 Hereは、beanstalkのドキュメントです。詳細は、その方法を参照してください。

編集

豆ストークは、EC2の上にある種の計器です。だからあなたはそのEC2のuser dataにアクセスできるので、それを扱う方法がなければなりません。深く掘り下げる必要はありません。あなたのサーバーを装備する良い方法があります。それは伸張と呼ばれています。それはサーバー上のファイルを置くために使用することができます、トリガーコマンド、楽器cron。あなたが望むものなら、なんでも。

ebextensionを作成できます。container_commands今回はPython Configuration Namespacesセクションです。そのコマンドは、各デプロイメントで実行されます。それでも、問題は、複数のデプロイメントを同時に実行できるため、同期が必要なことです。良い部分は、あなたが望む方法でenvを設定できることです。

私は環境変数にアクセスする上で問題ありません。どのように問題を解決しましたか?地図でページを準備してみてください。

+0

「eb ssh」内で環境変数をどのように取得することができるのか、最後の部分についてさらに明確にすることができますか? –

+0

もし私がdjango ORMを使用してDBデータを操作するスクリプトを実行したいのであれば、一回限りのケースが考えられます。私はテーブルに列を追加し、そのテーブル内のオブジェクトのリストを通過し、既にそこにあるエントリの列にデータを入れるスクリプトを実行したい(別の列から推測される可能性があります) –

関連する問題