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

Windows 10命令提示符下AWS CLI为EventBridge规则添加目标报错如何解决

问题原因

你的报错是嵌套JSON双重转义缺失导致的:
Input字段的值本身也是一段JSON字符串,属于嵌套JSON场景。你仅对所有双引号做了一层转义,Windows 10命令提示符解析命令时,会把Input值内部的\"直接解析为普通双引号,导致外层JSON结构提前闭合,最终传给AWS CLI的JSON格式非法。你可以看到报错返回的接收到的JSON中,Input":"{"InstanceId"的第二个双引号已经结束了Input字段的赋值,后续内容无法被解析。

解决方案

方案1:修改命令添加双重转义

嵌套JSON内部的双引号需要额外多转一层,也就是每个内层双引号前加两个反斜杠,写成\\"的形式。
修正后的完整命令如下:

aws events put-targets --rule xxxxxxxxxxxxxxxxxxxxxxxxx --targets "{\"Arn\":\"arn:aws:ssm:ap-northeast-1:awsaccountid:automation-definition/AWS-StartEC2Instance\",\"Input\":\"{\\\"InstanceId\\\":[\\\"i-xxxxxxxxxxxxxxxxx\\\"]}\",\"Id\":\"aaaaaaaa\",\"RoleArn\":\"arn:aws:iam::awsaccountid:role/some-ssm-role\"}"

方案2(更推荐,避免转义出错):将targets配置写入本地JSON文件加载

如果转义逻辑容易搞混,可以直接把targets的配置写到本地JSON文件中,不需要处理任何转义,AWS CLI会直接读取文件内容解析。

  1. 新建targets.json文件,内容如下:
[
  {
    "Arn": "arn:aws:ssm:ap-northeast-1:awsaccountid:automation-definition/AWS-StartEC2Instance",
    "Input": "{\"InstanceId\":[\"i-xxxxxxxxxxxxxxxxx\"]}",
    "Id": "aaaaaaaa",
    "RoleArn": "arn:aws:iam::awsaccountid:role/some-ssm-role"
  }
]
  1. 执行以下命令调用:
aws events put-targets --rule xxxxxxxxxxxxxxxxxxxxxxxxx --targets file://targets.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:24:03