もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

AWS BeanstalkでCronを設定する際に環境変数を付け加える

3ヶ月くらいかかったあとのPostです。 まぁこんなブログ誰も見てないだろうから、いいや。 こんかいもQiitaのやき回しです。 Qiitaに書いてブログにも書いてってめんどくさいので、、、


Beanstalkで各環境を管理していて、環境変数 PARAM1 で環境名を送って切り分けてます。

  • テスト環境 => dev
  • ステージング環境 => stg
  • 本番環境 => prod

送られた環境変数をFWのbootstrap的な箇所で受けとって、環境別の設定を読み込んでいます。

現状、cronも .ebextensions でcronの設定を記載していたのですが、環境変数を渡さないとFWが環境を判断できずどうしようとなっていました。

諸々調べて結果、以下みたいにすれば環境取れるようになりました。(簡単だった)

container_commands:
  01_cron:
    command: "echo \"00 04 * * * PARAM1=$PARAM1 /usr/bin/php /var/www/html/fw/bin/command batch01\" > /var/spool/cron/batch"
  02_cron:
    command: "echo \"30 04 * * * PARAM1=$PARAM1 /usr/bin/php /var/www/html/fw/bin/command batch02\" >> /var/spool/cron/batch"

こんなやり方のほうがいいよみたいなのあれば、ぜひ教えてください。