如何在GCP Workflows的try块内switch语句后添加默认步骤?
Google Workflows:
try块内switch的next默认跳转不生效问题 问题描述
单独使用switch步骤时,添加next字段可以正常触发默认跳转:
{ "switch": "$arr", "next": "Default" }
但将switch放入try块内后,同样的写法完全不生效:
"try": { "switch": "$arr", "next": "Default" }
问题原因
在Google Workflows的语法规则里,try是复合步骤容器,它的内部要求明确的命名步骤结构。当你直接在try下写switch和next时,next会被解析为try块的属性,而非switch步骤的配置项。而单独的switch作为独立步骤,它的next属于自身的合法配置,所以能正常工作。
解决方案
要让try块内的switch默认跳转生效,必须把switch包装成命名子步骤,明确next是该子步骤的属性,示例如下:
"try": { "my_switch_step": { "switch": "$arr", "next": "Default" } }
如果try块内只有switch这一个步骤,也可以把next移到try块外部,但这种方式仅适用于switch的所有分支都没有自定义next的场景(否则分支的跳转会被外部next覆盖,不推荐):
"try": { "switch": "$arr" }, "next": "Default"
补充说明
Google Workflows的try块内部必须包含一个或多个命名步骤,每个步骤的配置(比如switch、next)都要归属到对应命名步骤的层级下。直接在try根节点混写switch和next属于语法解析错误,导致next无法被正确识别为switch的跳转配置。
内容的提问来源于stack exchange,提问作者Michael Gee
相关产品推荐
相关产品推荐

