我希望使用CloudWatch在AWS上安排Lambda函数,以在美国市场时段(美国东部时间上午9:30-下午4点)每分钟触发一次。
我相信实现此目标的唯一方法是使用cron,而且我对cron及其不同的风格并不十分熟悉(AWS似乎允许使用一些MON-FRI
之类的非标准功能)。
到目前为止,我已经得出结论:
cron(0/1 14-21 ? * MON-FRI *)
似乎可以在上午9点至下午4点工作(假设我使用的是伦敦时区,其中包括5小时时差)。
如何让它从美国东部时间上午9:30开始? cron是否有办法自动保持夏令时变化的最新状态?
答案 0 :(得分:1)
如何让它从美国东部时间上午8:30开始?
不可能使用标准cron语法(包括CloudWatch Events中的时间)来表示8:30-4pm。
要解决此限制,您可以使用两个表达式
30-59 14 ? * MON-FRI *
* 15-21 ? * MON-FRI *
或者您可以解释代码中的逻辑。
cron是否有办法自动与夏令时更改保持同步?
Cron在确定何时运行作业时将使用本地系统时间。例如。如果在Linux上使用cron,它将使用/etc/timezone
(debian)所说的内容。时区文件(如provided by IANA)已编码了时间更改信息。使用CloudWatch Events,all times are UTC。您需要更正代码中的时区/时间更改,或者在具有EST / EDT偏移量的操作系统上使用cron。
答案 1 :(得分:0)
您可以根据需要使用CloudWatch Events触发lambda函数。
它还支持scheduled expressions,它支持cron语法,并且位于UTC时区。