AWS Scheduler get-schedule返回异常ScheduleExpression求助
问题原因与解决方案
问题本质
你遇到的异常是**Shell路径扩展(Globbing)**导致的,和AWS EventBridge本身无关:
- 执行
echo $TARGET时,Shell会自动解析变量中的*通配符,将其替换为当前CloudShell工作目录下的所有文件名。 - 你的当前目录恰好存在
new_target.json和task-def.json两个文件,因此Shell把Cron表达式里的*替换成了这两个文件名,才出现了异常的表达式内容。
验证方式
执行以下命令查看当前目录的文件列表,即可确认这两个文件的存在:
ls
解决方案
有三种方法可以彻底解决这个问题:
给变量加双引号输出:
双引号会阻止Shell解析变量内的通配符,直接输出原始JSON内容:TARGET=$(aws scheduler get-schedule --name MY-SCHEDULE-NAME) echo "$TARGET"直接指定AWS CLI输出格式:
跳过变量存储步骤,让AWS CLI直接输出格式化后的JSON,完全避免Shell解析干扰:aws scheduler get-schedule --name MY-SCHEDULE-NAME --output json用工具解析JSON(推荐):
如果需要提取特定字段,使用jq工具可以精准处理JSON内容,彻底规避Shell解析问题:aws scheduler get-schedule --name MY-SCHEDULE-NAME --output json | jq '.ScheduleExpression'
内容的提问来源于stack exchange,提问作者Kalle
相关产品推荐
相关产品推荐

