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

GCP Workflow问题:无法将输入参数传入for循环

GCP Workflows部署报错:for-in loop is allowed only for an array object 解决办法

你的报错并非GCP Workflows不支持运行时参数传入for循环,而是部署阶段的静态类型校验导致的:

  • 你通过default(map.get(input, "my_list"), [])获取的my_list,在部署时校验器无法确定它的类型一定是数组(尽管运行时会兜底为数组),因此触发了类型检查错误。

两种修复方案:

方案1:用cast函数强制指定数组类型

通过cast明确告知校验器变量的类型为数组,通过静态检查:

main:
  params: [input]
  steps:
    - assign_vars:
        assign:
          - my_list: ${cast(default(map.get(input, "my_list"), []), '[]')}
    - for_each_item:
        parallel:
          for:
            value: item
            in: my_list
            steps:
              - log_item:
                  call: sys.log
                  args:
                    data: item

方案2:直接在for的in中使用表达式

跳过变量赋值,直接将动态表达式放在for的in字段里,让校验器识别到这是一个数组表达式:

main:
  params: [input]
  steps:
    - for_each_item:
        parallel:
          for:
            value: item
            in: ${default(map.get(input, "my_list"), [])}
            steps:
              - log_item:
                  call: sys.log
                  args:
                    data: item

这两种方式都能通过部署校验,且运行时可正常处理传入的my_list参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:32:08