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

如何配置Redshift Scheduled queries执行失败的错误告警

定时SQL任务仅执行失败触发告警落地方案

直接给Scheduled Queries绑定SNS做通知默认会推送全状态的执行事件,没法原生做失败场景过滤,按下面的方案配置即可,不用修改现有SQL任务逻辑:

方案1:零代码过滤(最推荐,5分钟即可配置完成)

用EventBridge事件规则做状态过滤,不需要编写额外代码:

  • 先删掉原来Scheduled Query上直接绑定的SNS通知配置,避免全量状态推送冗余消息
  • 在EventBridge控制台新建自定义事件规则,事件源选择对应服务的事件(Athena定时查询选aws.athena,Redshift定时查询选aws.redshift-data)
  • 配置事件匹配规则,只筛选执行失败/异常取消的状态,参考匹配规则如下:
{
  "source": ["aws.athena"],
  "detail-type": ["Query Execution State Change"],
  "detail": {
    "currentState": ["FAILED", "CANCELLED"],
    "scheduledQueryName": ["替换为你的每日定时SQL任务名称"]
  }
}
  • 规则的触发目标直接选择你之前建好的、用来发告警邮件的SNS主题,保存生效即可。
    该配置下只有SQL执行状态匹配失败/取消时,EventBridge才会把事件推给SNS发邮件,执行成功的事件会被规则直接过滤,不会触发通知。如果需要更细的过滤(比如只过滤特定错误原因、执行超时的场景),直接在匹配规则的detail块里加对应字段的匹配条件就行。

方案2:自定义告警内容(适合需要精细化告警信息的场景)

如果觉得默认事件推送的内容太生硬、全是JSON字段不方便排查,可以在过滤层和SNS之间加一层Lambda函数:

  • EventBridge规则仍按上述逻辑配置,只匹配失败状态的事件,但是触发目标改成Lambda函数
  • 在Lambda里写简单的处理逻辑:根据事件里带的查询ID,拉取本次执行的具体错误信息、SQL片段、执行时长、报错位置等内容,组装成易读的告警文本
  • Lambda处理完内容之后,再调用SNS/SES发送邮件给对应负责人,排查问题时无需跳转控制台查日志。

配置注意事项

  • 配完规则一定要做验证:手动触发一次带语法错误的测试SQL,确认能收到失败告警;再跑一次正常可执行成功的SQL,确认不会收到通知,避免规则配置错漏
  • 如果有多个定时SQL任务,可以在同一个EventBridge规则里批量配置要监控的任务名,不用给每个任务单独建规则
  • 怕告警轰炸的话,可以给SNS主题加静默策略,同一个任务短时间内连续失败只发一次告警,避免刷邮箱

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:45:44