AWS ElasticBeanstalkといつでも宝石

エヴァン・ジョンソン

Ruby2.2を使用したRails4.2.1アプリがあります。Whenever Gemを使用して、コードベースからElasticBeanstalkのcronタスクを更新しようとしていますAWSのいくつかのリソースに従って、.ebextensionsフォルダーにファイルを追加し、シェルファイルを介してEBのデプロイ後フックを使用できます。ここにいくつかのリソースがあります:

ブログ記事に続いて、以下のファイルを追加し、.ebextensionsフォルダー内のファイルに関するgitignore行のコメントを解除して、アプリをデプロイしました。残念ながら、私はどんな変化も見ることができました。ログファイル(log/eb-tools.loglog/cronなど)を確認し、作成したシェルファイルのすべてのログファイルをいつでも取得しました。でも運がない。

commands:
  create-post-dir:
  command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post"
  ignoreErrors: true
files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/99_update_cron.sh"
  mode: "000755"
  owner: root
  group: root
  content: |
    #!/usr/bin/env bash
    # Using similar syntax as the appdeploy pre hooks that is managed by AWS

    # Loading environment data
    EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir)
    EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir)
    EB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user)
    EB_APP_CURRENT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)
    EB_APP_PIDS_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_pid_dir)

    # Setting up correct environment and ruby version so that bundle can load all gems
    . $EB_SUPPORT_DIR/envvars
    . $EB_SCRIPT_DIR/use-app-ruby.sh

    # Now we can do the actual restart of the worker. Make sure to have double quotes when using env vars in the command.
    su -c "cd $EB_APP_CURRENT_DIR; bundle exec whenever --update-cron --set='environment=$RACK_ENV'" - $EB_APP_USER

このシェルファイルが呼び出されていることを確認するにはどうすればよいですか?毎回新しいデプロイメントなしでテストできますか?また、いつでも宝石が最良の選択肢ではない場合、私は他の選択肢を受け入れます。私は主に、cronタスクをコードで管理してバージョン管理できるようにしたいと考えています。

前もって感謝します!

更新:

  • .ebextensionsフォルダにタイプがあり、追加されませんでした。それが修正された後、エラーメッセージを読み、Whenevergemを使用してcrontabを更新するcronスクリプトを作成することができました。
エヴァン・ジョンソン

.ebextensionsフォルダ名のタイプミスを修正した後、これを理解することができましたその後、スクリプトがコンパイルされ、ログメッセージが表示され始めました。ログメッセージを読んだ後、次の設定スクリプト(.ebextensions/01_cron.configを思いつきました

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/01_cron.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      # Using similar syntax as the appdeploy pre hooks that is managed by AWS
      set -xe

      EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir)
      EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir)
      EB_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)

      . $EB_SUPPORT_DIR/envvars
      . $EB_SCRIPT_DIR/use-app-ruby.sh

      cd $EB_DEPLOY_DIR
      su -c "bundle exec whenever --update-cron"
      su -c "crontab -l"

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Django 403 AWS ElasticBeanstalkで禁止

分類Dev

Http to Https AWS Elasticbeanstalk

分類Dev

AWS ElasticbeanstalkのCORS

分類Dev

AWS cli elasticbeanstalk

分類Dev

AWS cli elasticbeanstalk

分類Dev

AWS ElasticBeanstalkでのSpringBootとファイルへのロギング

分類Dev

AWS ElasticBeanstalkで実行されているSymfony4

分類Dev

AWS ElasticBeanstalkでホストされているWordpressのHTTPS

分類Dev

AWS ElasticBeanstalk ENV Vars not working

分類Dev

AWS ElasticBeanstalkの問題

分類Dev

AWS ElasticBeanstalkとEC2Container Service(ECS)-Docker

分類Dev

AWS ElasticBeanstalkとAmazonECRDockerイメージ

分類Dev

シナトラと一緒にいつでも宝石を使う

分類Dev

AWS ElasticBeanstalkでLDAPを有効にする

分類Dev

awsopsworksの宝石がいつでも

分類Dev

AWS :: ElastiCache :: CacheClusterとAWS :: ElastiCache :: ReplicationGroup

分類Dev

AWS Amplifyは、ElasticBeanstalkで作成されたec2のRESTAPIと通信します

分類Dev

「どのソースでもaws-sigv4-1.0.0が見つかりませんでした」というgemが見つかりません

分類Dev

ElasticBeanstalk環境でawsパラメータキーが更新されない

分類Dev

AWS MySQLRDSとAWSDynamoDB

分類Dev

AWS:ElasticIPとENI

分類Dev

AWS CognitoAccessTokenとIdToken

分類Dev

AWS EKSKubernetesとDockerHub

分類Dev

AWSで無料利用枠サービスを一時停止し、必要なときにいつでも再開できますか?

分類Dev

AWS ElasticBeanstalkを使用したFTP

分類Dev

AWS ElasticBeanstalkのLaravel.env

分類Dev

AWS ElasticBeanstalkエラー-乗客

分類Dev

How to access files deployed in aws elasticbeanstalk

分類Dev

AWS Internal ServiceErrorでElasticBeanstalkにデプロイされたPythonFlaskサーバー、ログによるとSECRET_KEYが設定されていませんか?

Related 関連記事

  1. 1

    Django 403 AWS ElasticBeanstalkで禁止

  2. 2

    Http to Https AWS Elasticbeanstalk

  3. 3

    AWS ElasticbeanstalkのCORS

  4. 4

    AWS cli elasticbeanstalk

  5. 5

    AWS cli elasticbeanstalk

  6. 6

    AWS ElasticBeanstalkでのSpringBootとファイルへのロギング

  7. 7

    AWS ElasticBeanstalkで実行されているSymfony4

  8. 8

    AWS ElasticBeanstalkでホストされているWordpressのHTTPS

  9. 9

    AWS ElasticBeanstalk ENV Vars not working

  10. 10

    AWS ElasticBeanstalkの問題

  11. 11

    AWS ElasticBeanstalkとEC2Container Service(ECS)-Docker

  12. 12

    AWS ElasticBeanstalkとAmazonECRDockerイメージ

  13. 13

    シナトラと一緒にいつでも宝石を使う

  14. 14

    AWS ElasticBeanstalkでLDAPを有効にする

  15. 15

    awsopsworksの宝石がいつでも

  16. 16

    AWS :: ElastiCache :: CacheClusterとAWS :: ElastiCache :: ReplicationGroup

  17. 17

    AWS Amplifyは、ElasticBeanstalkで作成されたec2のRESTAPIと通信します

  18. 18

    「どのソースでもaws-sigv4-1.0.0が見つかりませんでした」というgemが見つかりません

  19. 19

    ElasticBeanstalk環境でawsパラメータキーが更新されない

  20. 20

    AWS MySQLRDSとAWSDynamoDB

  21. 21

    AWS:ElasticIPとENI

  22. 22

    AWS CognitoAccessTokenとIdToken

  23. 23

    AWS EKSKubernetesとDockerHub

  24. 24

    AWSで無料利用枠サービスを一時停止し、必要なときにいつでも再開できますか?

  25. 25

    AWS ElasticBeanstalkを使用したFTP

  26. 26

    AWS ElasticBeanstalkのLaravel.env

  27. 27

    AWS ElasticBeanstalkエラー-乗客

  28. 28

    How to access files deployed in aws elasticbeanstalk

  29. 29

    AWS Internal ServiceErrorでElasticBeanstalkにデプロイされたPythonFlaskサーバー、ログによるとSECRET_KEYが設定されていませんか?

ホットタグ

アーカイブ