Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Amazon CloudWatchのルールのスケジュール式のcron式がわかりづらい、のでなんとかしたい。2018-05-28

More than 1 year has passed since last update.

246 Hack Night #1 内に行った作業のメモです。

内容

Amazon CloudWatchのルールのスケジュール式のcron式がわかりづらいので、普通のcrontabのフォーマットをCloudWatchのScheduledEventsのcron式に変換するものをRubyで書きます。

わかりづらいポイント

普通のcrontabにはない ? がわかりづらいです。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/ScheduledEvents.html

例: 毎日午前 10:00 (UTC) に実行

crontab

0 10 * * * COMMAND

CloudWatch cron( のフィールドもあるので普通のcrontabより1個多いです)

0 10 * * ? * COMMAND

「曜日」のフィールドを ? にしないといけません。
いつものcrontabな感じで * にするとエラーになります。

作った

https://github.com/abetomo/cloud_watch_scheduled_events_cron

% echo '0 10 * * *' | bundle exec ruby ./bin/to_cwcec
0 10 * * ? *
% echo '5 * * * 1-5' | bundle exec ruby ./bin/to_cwcec
5 * ? * MON-FRI *

のように普通のcrontabの内容をCloudWatchのcron式に変換してくれます。

足りないところ

  • gem が作ったREADMEそのままです 更新しました
  • gemに上げてないです 上げました https://rubygems.org/gems/cloud_watch_scheduled_events_cron
  • AWSのドキュメントにある例しかサポートしていないので、うまく動かないケースのほうが多いと思います
  • 入力が標準出力からのみ

まとめ

CloudWatchのScheduledEventsのcron式でいつもエラーになるのでこのような変換ツールがあるとうれしいです。

abetomo
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away