AWS EventBridge Cron 时区 - 在特定本地时间触发
AWS EventBridge Cron Timezone - Fire on Specific Local Time
我们已经设置了一个 EventBridge 来触发 Lambda。它应该 运行 每天在 9:30AM 当地时间(美国 EST/EDT 在我的情况下)。问题是日期似乎是由 UTC 在 EventBridge 中设置的。有没有办法让它始终基于特定时区? IE 9:30AM 不分季节?
遗憾的是,您不能这样做,因为使用了 only UTC time zone:
All scheduled events use UTC time zone and the minimum precision for schedules is 1 minute.
您需要定制解决方案来完成您想要做的事情。例如,让 AWS EventBridge 触发一个 lambda 函数,该函数根据将 UTC 转换为本地时间来评估还应该触发什么。
要么安排另一个事件来调整第一个事件,要么在 9:30 EST 和 9:30 EDT 执行 lambda,并让 lambda 确定应该 运行。
运行 当地时间凌晨 2 点和凌晨 3 点的另一个 lambda,可以调整夏令时第一个 lambda 的时间表。您可以使用lambda语言的实现来决定事件是否需要调整。
您还可以在夏令时调整时间和非调整时间将原始 lambda 安排为 运行(因此,EDT 为 14:30 UTC,EDT 为 13:30 UTC美东时间)。然后 lambda 可以根据日历检查来决定现在是否是适当的执行时间。
我更喜欢第一个选项,因为它的职责分离更清晰。
我们已经设置了一个 EventBridge 来触发 Lambda。它应该 运行 每天在 9:30AM 当地时间(美国 EST/EDT 在我的情况下)。问题是日期似乎是由 UTC 在 EventBridge 中设置的。有没有办法让它始终基于特定时区? IE 9:30AM 不分季节?
遗憾的是,您不能这样做,因为使用了 only UTC time zone:
All scheduled events use UTC time zone and the minimum precision for schedules is 1 minute.
您需要定制解决方案来完成您想要做的事情。例如,让 AWS EventBridge 触发一个 lambda 函数,该函数根据将 UTC 转换为本地时间来评估还应该触发什么。
要么安排另一个事件来调整第一个事件,要么在 9:30 EST 和 9:30 EDT 执行 lambda,并让 lambda 确定应该 运行。
运行 当地时间凌晨 2 点和凌晨 3 点的另一个 lambda,可以调整夏令时第一个 lambda 的时间表。您可以使用lambda语言的实现来决定事件是否需要调整。
您还可以在夏令时调整时间和非调整时间将原始 lambda 安排为 运行(因此,EDT 为 14:30 UTC,EDT 为 13:30 UTC美东时间)。然后 lambda 可以根据日历检查来决定现在是否是适当的执行时间。
我更喜欢第一个选项,因为它的职责分离更清晰。