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

如何配置AWS EventBridge Cron规则:每月N天后仅工作日触发Lambda

解决AWS EventBridge触发Lambda的工作日+排除月初时段需求

方案一:EventBridge层面过滤(无无用Lambda调用)

这种方法通过定时触发+事件过滤规则,直接在云端过滤掉不符合条件的时段,只有符合要求的事件才会触发Lambda,避免无效调用。

步骤:

  1. 创建EventBridge规则,选择Schedule类型,设置触发频率(比如每天上午10点,对应cron表达式:cron(0 10 * * ? *))。
  2. 添加Lambda作为目标后,进入Event pattern配置,选择Custom pattern (JSON),输入以下过滤规则(示例为排除每月1-3号、仅保留周一到周五):
{
  "source": ["aws.events"],
  "detail-type": ["Scheduled Event"],
  "$.dayOfWeek(time)": ["2", "3", "4", "5", "6"],
  "$.dayOfMonth(time)": ["4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"]
}
  • 说明:AWS的$.dayOfWeek(time)返回值中,1=周日、2=周一、6=周五,所以["2","3","4","5","6"]对应工作日;$.dayOfMonth(time)列出所有非月初的日期,可根据你的实际需求调整排除的日期范围。
  1. 保存规则即可,只有同时满足工作日和非月初时段的触发事件才会调用Lambda。

方案二:Lambda内部判断(配置简单)

如果觉得EventBridge过滤规则配置繁琐,可以让EventBridge按工作日触发,在Lambda内部判断当前日期是否属于月初无效时段,不符合则直接退出。

步骤:

  1. 创建EventBridge规则,使用cron表达式指定工作日触发(比如每天上午10点的周一到周五,对应cron表达式:cron(0 10 ? * 2-6 *))。
    • 注意:AWS cron的day-of-week字段中,1=周日、2=周一、6=周五,2-6即覆盖所有工作日。
  2. 在Lambda函数中添加日期判断逻辑(以Python为例):
import datetime

def lambda_handler(event, context):
    # 转换为你需要的时区,示例为北京时间
    today = datetime.datetime.now(datetime.timezone(datetime.timedelta(hours=8)))
    # 判断是否是每月1-3号,是的话直接跳过执行
    if today.day <= 3:
        return {
            'statusCode': 200,
            'body': '月初时段,跳过邮件发送'
        }
    # 执行异常超额预测账单邮件发送逻辑
    # ... 你的邮件发送代码 ...
    return {
        'statusCode': 200,
        'body': '邮件发送成功'
    }

内容的提问来源于stack exchange,提问作者HSchmale

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:23:12