aws-solutions / aws-waf-security-automations

This solution automatically deploys a single web access control list (web ACL) with a set of AWS WAF rules designed to filter common web-based attacks.
https://aws.amazon.com/solutions/aws-waf-security-automations
Apache License 2.0
852 stars 366 forks source link

Invalid CRON expression `cron(* ? * * * *)` #261

Open zsidez opened 9 months ago

zsidez commented 9 months ago

Is this a valid cron expression? cron(* ? * * * *)

EventBridge's Define schedule shows error: Invalid CRON expression

Latest version (v4.0.2) of Security Automation still have this setting

Originally posted by @zsidez in https://github.com/aws-solutions/aws-waf-security-automations/issues/186#issuecomment-1876778317

abewub commented 8 months ago

Thanks for reporting. Will be fixed in the next release.

aijunpeng commented 8 months ago

@zsidez cron(* ? * * * *)defines a job that runs at the top of the hour. How did you get the error? Please provide steps to reproduce.

zsidez commented 6 months ago

@aijunpeng This is how it will be at the beginning of the hour: cron(0 * ? * * *) or cron(0 * * * ? *)

Can't put question mark ? at any position. Allowed only for Day-of-month and Day-of-week

To reproduce can open created(or create new) events bridge rule in aws console:

EventBridge's Define schedule shows error: Invalid CRON expression

zsidez commented 6 months ago

eventbridge-rules-edit

zsidez commented 6 months ago

Also I suggest to run this add_athena_partitions job not at the top of the hour. But every minute. To be sure that partition is created.

Current code that adds partition already doesn't add it if partition exists: ALTER TABLE ... ADD IF NOT EXISTS PARTITION . So every minute should work

So cron can be: cron(* * * * ? *)

aijunpeng commented 6 months ago

Thanks for providing more information. I've validated that cron(* ? * * * *) works fine in CFN template. So if you deploy the solution template, there won't be an issue. However for some reason (could be due to some service change) it doesn't work on AWS console any more. If you want to update the expression via the console, please enter the correct cron expression to pass the error. We have added this issue to our backlog and will address it in future release. I am not experiencing any problem with running hourly query to add hourly partition on my end though.