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

通过EventBridge规则调度执行SSM文档时,如何发送Run Command日志?

用EventBridge调度SSM文档时,获取Run Command执行日志的方法

1. 先写好能捕获输出的SSM文档

针对Linux的Hello World脚本,你的SSM文档得明确捕获脚本输出,示例如下:

schemaVersion: '2.2'
description: 运行Hello World脚本并抓取输出
mainSteps:
- action: aws:runShellScript
  name: runHelloWorld
  inputs:
    runCommand:
    - echo "Hello World"
    workingDirectory: /tmp

这里用aws:runShellScript动作,它会自动捕获脚本的标准输出和错误输出,后续可以通过日志配置导出。

2. 给Run Command配置日志输出目标

不管是手动执行还是EventBridge触发,都得指定日志要存哪儿——CloudWatch Logs、S3都行,也可以同时选。如果是EventBridge调度,配置步骤如下:

  • 创建EventBridge规则时,选Run Command作为目标,关联你写好的SSM文档
  • 在目标的Run Command参数里,找到CloudWatch Logs选项:
    • 勾选「启用CloudWatch Logs」,指定日志组名(比如/aws/ssm/HelloWorldLogs,不存在会自动创建)
    • 要是想存S3,就勾选「将输出发送到S3」,填好桶名和前缀
  • 别忘了给EventBridge用的IAM角色加权限:
    • 要能操作CloudWatch Logs的话,得有logs:CreateLogGroup、logs:CreateLogStream、logs:PutLogEvents权限
    • 存S3的话,得有s3:PutObject权限

3. 查看执行日志的几种方式

EventBridge触发Run Command后,你可以通过这几个地方找日志:

  • CloudWatch Logs:进CloudWatch控制台,找到你指定的日志组,对应实例ID的日志流里就有脚本输出(比如Hello World)
  • SSM控制台:进SSM > Run Command > 命令历史,找到对应的执行记录,点「查看输出」就能直接看标准输出和错误输出
  • S3桶:如果配置了S3输出,指定路径下会生成日志文件,里面有完整的执行详情和输出

踩坑提醒

  • 目标机器必须装了且在运行SSM Agent,不然根本执行不了文档,更别说发日志
  • IAM角色权限一定要配对,不然日志传不上去
  • 脚本的错误输出也会被捕获,排查问题的时候有用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:04:56