You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Amazon EventBridge Cron实现月末工作日触发Lambda?

解决Amazon EventBridge每月最后一个工作日触发Lambda的问题

问题原因

Amazon EventBridge的Cron表达式不允许同时在日期字段使用L(月末)和星期字段指定具体星期范围(如0-4),两者逻辑冲突会导致系统无法解析,因此提示表达式无效。

可行解决方案

方案1:Lambda内添加工作日判断(最可靠)

保留你现有的月末触发Cron表达式,在Lambda函数开头加入逻辑判断:如果当天是非工作日(周六、周日),直接退出不执行核心业务。

示例Python代码片段:

import datetime

def lambda_handler(event, context):
    # 获取当前UTC时间的星期几(0=周一,4=周五)
    today = datetime.datetime.utcnow().weekday()
    if not (0 <= today <= 4):
        print("今日为非工作日,终止执行")
        return {
            'statusCode': 200,
            'body': "非工作日,不执行核心逻辑"
        }
    
    # 此处编写核心业务逻辑
    print("执行核心业务逻辑")
    return {
        'statusCode': 200,
        'body': "核心逻辑执行完成"
    }

方案2:使用EventBridge扩展Schedule表达式

Amazon EventBridge支持除标准Cron外的灵活Schedule语法,可直接指定"每月最后一个工作日":

  1. 创建EventBridge调度规则时,选择**"表达式"**类型(而非标准Cron)
  2. 输入表达式:30 13 ? * LAST_WEEKDAY *
    • 该表达式会自动识别每月的最后一个工作日(周一至周五)并触发任务

补充说明

标准Cron语法本身没有直接实现"最后一个工作日"的写法,必须结合业务逻辑判断或使用EventBridge扩展的调度语法来实现需求。

内容的提问来源于stack exchange,提问作者George Plamenov Georgiev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 21:25:02