Cloudwatchルールを使用してAWS Lambda関数をトリガーしたいのですが、要件は次のとおりです。
cronに関するドキュメント を読み、条件3を満たすCron式を作成できません。次のような表現を思いつきました。
0/5 ## * * ? *
上記の条件3)をどのように満たすことができますか?cron式で##
として残しました。タイムゾーン。
私は自分の質問に答えています。正規のcron式は、AWS Cloudwatchルールには適用されません。 AWS Cloudwatchルールには、SIX(6)必須フィールドのcron式があります。 ( ドキュメントへのリンク )。この質問に対する答えは次のとおりです。いくつかのケースではタイムゾーンが重要であり、真夜中の代わりに異なる時間をスキップしなければならない場合があるため、さまざまなシナリオを紹介します。
以下のシナリオはどちらも機能しており、AWS Cloudwatchルールでテストしました。
シナリオ1:毎日トリガー-5分ごと-午後11時から午前1時までスキップ
0/5 1-22 * * ? *
説明:最初のフィールドは0分と5分でのみトリガーされます。 2番目のフィールドでは、1時間目から22時間目までトリガーする必要があると述べています。したがって、22:55以降、次のトリガーは1:00になります。 23:00から00:55にスキップします。
シナリオ2:毎日トリガー-5分ごと-午後5時から午後7時までスキップ
0/5 0-16,19-23 * * ? *
説明:最初のフィールドは0分と5分でのみトリガーされます。 2番目のフィールドでは、0時間から16時間、および19時間から23時間にトリガーする必要があると述べています。したがって、16:55以降、次のトリガーは19:00になります。 17:00から18:55までスキップします。
次のようなcronオンラインツールを利用できます。
これは私があなたの要件に従って作成した表現です
*/5 1-23 * * *
このコマンドはあなたを助けることができます:
*/5 1-23* * * * /usr/bin/php /home/username/public_html/cron.ph >/dev/null 2>&1
答えはすでに示されていますが、追加できるものはほとんどありません。 https://crontab.guru/ AWSのcron式は6
の数字で構成され、crontabは5
で構成されているため、混乱を招きます。 @keetが言及する混乱
したがって、最初に年セクションを無視してcrontabでcronエクスプレスを確認できますが、crontabは曜日に関しては?
マークを理解しません。
したがって、私の提案は、次の10
トリガーをリストする式のテストにAWSコンソールを使用することです。
ですから、次のトリガーについて他の誰かが知るのに役立つことを願っています。
詳細については、 AWS CronExpressions を確認してください