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

EventBridge规则异常:指定SSM文档成功时无法触发Lambda的问题

解决EventBridge规则添加SSM documentName条件后无法触发的问题

核心问题:模式匹配未对齐SSM事件的实际结构

你遇到的问题大概率是EventBridge规则模式里的字段路径、大小写或匹配逻辑和SSM发送的实际事件不匹配,以下是具体排查和修复方案:

1. 先确认SSM成功事件的真实结构

SSM命令执行成功时发送到EventBridge的事件,核心结构大致如下(截取关键部分):

{
  "source": "aws.ssm",
  "detail-type": "SSM Command Execution Status Change",
  "detail": {
    "commandId": "xxxx-xxxx-xxxx-xxxx",
    "status": "Success",
    "documentName": "MyDocument",
    "instanceIds": ["i-xxxxxx"],
    // 其他字段...
  }
}

重点注意:documentName是嵌套在detail对象里的驼峰式字段,大小写不能错。

2. 正确的规则模式示例

直接用以下模式替换你当前的配置,确保完全匹配:

{
  "source": ["aws.ssm"],
  "detail-type": ["SSM Command Execution Status Change"],
  "detail": {
    "status": ["Success"],
    "documentName": ["MyDocument"]
  }
}

3. 常见错误排查点

  • 字段层级错误:很多人会把documentName写在根层级(和source同级),但它实际属于detail子对象,这会直接导致匹配失败
  • 大小写错误:把documentName写成DocumentName/documentname,SSM事件的字段是严格驼峰式的,大小写不匹配就会过滤掉事件
  • 文档版本问题:如果执行的是带版本号的文档(比如MyDocument:1),只写MyDocument会匹配不上,这种情况可以用通配符匹配:"documentName": ["MyDocument*"],或者确保执行的是无版本的默认文档
  • 事件类型错误:误用了其他detail-type值,正确的类型必须是SSM Command Execution Status Change

4. 快速验证方法

  1. 去EventBridge的「事件总线」里找到一条你期望触发的SSM成功事件
  2. 复制该事件的JSON内容
  3. 打开EventBridge规则的「模式测试」工具,把事件JSON粘贴进去,再输入你的规则模式,查看是否能匹配成功

只要模式能通过测试工具的验证,规则就能正常触发Lambda。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 20:32:05