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

AWS Automation基于Python输出的aws:branch分支跳转异常问题

问题成因与排查方案

你当前的配置存在高概率导致分支失效的语法问题,可按以下步骤逐一排查修复:

1. 优先修复YAML格式错误

第一个执行脚本步骤的name字段不符合YAML键值对语法要求,当前写法为:

- name extractInfo

name和值之间缺少必填的冒号,正确写法应为:

- name: extractInfo

该错误会导致SSM Automation无法将该步骤识别为ID为extractInfo的有效步骤,后续分支步骤引用extractInfo.infoMsg变量时会拿到空值,无法匹配任何预设的等值条件,因此直接跳转至Default对应的End步骤。

2. 语法修复后仍不生效的排查步骤

补全冒号后如果分支跳转依然不符合预期,按以下规则逐一验证:

  • 校验变量引用的大小写敏感性:SSM Automation对步骤名、输出名的大小写完全敏感,确认分支里引用的extractInfo.infoMsg和第一步定义的步骤名、输出字段名Name: infoMsg大小写完全一致,不要出现拼写大小写偏差。
  • 打印实际输出值确认内容:在提取信息步骤和分支步骤中间插入临时调试步骤,打印第一步输出的实际值,确认是否存在转义字符、额外空格等问题:
- name: debugVal
    action: 'aws:executeScript'
    inputs:
      Runtime: python3.6
      Handler: script_handler
      Script: |-
        def script_handler(events, context):
          # 打印第一步的全量输出,查看实际值
          print(f"DEBUG: extractInfo step output = {extractInfo}")
          return

运行自动化任务后查看执行日志:

  • 如果打印的infoMsg值为带额外双引号的"one",说明返回值被序列化时带上了转义引号,把分支条件修改为StringEquals: '"one"'即可匹配,也可以在Python脚本返回前做字符串处理去掉多余引号。
  • 如果打印的infoMsg为空,检查第一步的outputs配置,确认Selector: $.Payload写法正确,Python脚本的返回值确实被正确赋值到Payload字段。
  • 校验Python脚本的返回格式:python3.6 runtime环境下,aws:executeScript要求handler返回字符串时不要手动加json序列化逻辑,直接return字符串即可,避免重复序列化导致值格式不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:45:34