Elastic Beanstalk 環境のワーカー層で cron ジョブをトラブルシューティングする方法を教えてください。

最終更新日: 2019 年 10 月 11 日

AWS Elastic Beanstalk 環境のワーカ層で cron ジョブのトラブルシューティングを行うにはどうすればよいですか?

簡単な説明

cron ジョブがワーカー層に表示されない場合は、「ワーカー環境に cron ジョブを追加する」セクションの手順を完了します。cron ジョブがワーカー層に表示されない場合は、「ワーカー環境の cron ジョブの問題のトラブルシューティング」セクションの手順に従います。

解決方法

ワーカー環境に cron ジョブを追加する

Elastic Beanstalk 環境のワーカー層に cron ジョブを追加するには、ソースコードのルートに cron.yaml ファイルを含めます。次の例をご参照ください。

version: 1
cron:
 — name: "schedule"
   url: "/schedule"
   schedule: "0 */12 * * *"

注: 前の例では、schedule という名前の cron ジョブが、12 時間ごとに Elastic Beanstalk のワーカー環境の /schedule エンドポイントに POST リクエストを発行しています。

ワーカー環境の cron ジョブの問題のトラブルシューティング

1.    Elastic Beanstalk 環境のイベントストリームで、次のようなイベントを確認します。

Successfully loaded 1 scheduled tasks from cron.yaml

2.    /var/log/eb-commandprocessor.log ファイルで、次のようなログを確認します。

{"status":"SUCCESS","api_version":"1.0","results":[{"status":"SUCCESS","msg":"","returncode":0,"events":[{"msg":"Successfully loaded 1 scheduled tasks from cron.yaml.","severity":"INFO","timestamp":1562000593}]}]}

3.    /var/log/aws-sqsd/default.log ファイルで、Amazon Simple Queue Service (Amazon SQS) デーモンが実行中で、正しいキューをポーリングしていることを確認します。

Amazon SQS デーモンが正しく起動すると、次のようなログが表示されます。

2019-07-04T14:11:21Z init: initializing aws-sqsd 2.4 (2018-09-06)
2019-07-04T14:11:21Z pollers: start initializting poller timer...
2019-07-04T14:11:21Z pollers: start auto running poller...
2019-07-04T14:11:21Z start: polling https://sqs.us-west-2.amazonaws.com/111122223333/yourWorkerQueue

4.    /var/log/aws-sqsd/default.log ファイルでデーモンがキュー項目をポーリングするとき、Amazon SQS デーモンが http://localhost/ にポート 80 で送信する HTTP POST リクエストを確認します。

次のような出力が表示されます。

2019-07-05T13:54:52Z message: sent to http://localhost:80/

5.    メッセージが SQS キューに配信されていることを確認するには、ワーカー環境に関連付けられたキューのメトリクス NumberOfMessagesReceived を確認します。

注: メッセージをキューに手動で送信して、cron ジョブを確認することもできます。

6.    スケジュールされたタスクを手動で呼び出すには、次の curl コマンドを実行します。

curl -d param1=value1 -d param2=value2 -H "Content-Type: application/json" -X POST http://localhost/scheduled-task-path

-d (-data) フラグは、cron ジョブに渡そうとしているデータを保持することができます。

注: 定期的なタスクは、Amazon SQS FIFO キューを設定したワーカー環境では機能しません。


この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合