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

如何在Google Workflow YAML文件中设置变量默认值?

Google Workflows 设置未传入变量的默认值

你遇到的报错是YAML语法解析导致的:?在YAML中是映射键的特殊标记,直接写三元表达式会被解析成嵌套映射结构,从而触发“Nested mappings are not allowed in compact mappings”错误。以下是两种可行的实现方式:

方式一:提前在初始化步骤处理变量

在init步骤的assign中先判断变量是否存在,不存在则赋值默认值,后续步骤直接引用处理后的变量,避免YAML解析冲突:

main:
  params: [ input ]
  steps:
    - init:
        assign:
          - project_id: ${project_id}
          - some_var_value: ${input.get('some_variable', 'fallback')}

    - someJob:
        call: call_to_the_api
        args:
          name: ${someJob}
          location: ${someRegion}
          body:
            overrides:
              containerOverrides:
                env:
                  - name: some_variable
                    value: $${some_var_value}

方式二:直接在值中使用字典get方法

利用Google Workflows中input作为字典对象的特性,直接调用get方法,第二个参数即为默认值,写法更简洁:

main:
  params: [ input ]
  steps:
    - init:
        assign:
          - project_id: ${project_id}

    - someJob:
        call: call_to_the_api
        args:
          name: ${someJob}
          location: ${someRegion}
          body:
            overrides:
              containerOverrides:
                env:
                  - name: some_variable
                    value: $${input.get('some_variable', 'fallback')}

补充:使用if-else条件表达式

如果更倾向于用条件判断而非get方法,也可以在assign步骤中写if-else语法:

- some_var_value: ${input.some_variable if 'some_variable' in input else 'fallback'}

注意必须放在assign步骤中,不能直接写在value字段里,否则仍会触发YAML解析错误。

内容的提问来源于stack exchange,提问作者Alex Abades Grimes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 06:51:03