我有一个带有选择状态的工作流,该状态会检查某个变量,如果满足条件,它将再次开始上一步;否则,则跳到下一步。
import stepfunctions
first_job = stepfunctions.steps.Pass('First job')
second_job = stepfunctions.steps.Pass('Second job')
check = stepfunctions.steps.Choice('Check first job')
check.add_choice(
rule=stepfunctions.steps.ChoiceRule.BooleanEquals(
variable='$run_me_again',
value=True
),
next_step=first_job
)
check.default_choice(second_job) # This could be set automatically
chain = stepfunctions.steps.Chain([first_job, check, second_job])
最后一行希望链接不同的步骤,以便我们可以将其转换为工作流,但这行会引发错误:
ValueError: ... , State type `Choice` does not support method `next`.
为什么这会引发错误?选择状态后进行下游任务很有意义。
我从here那里得到了例子
答案 0 :(得分:0)
选择状态不支持“结束”字段。此外,他们仅在其Choices字段中使用Next。
还可以使用“默认”:如果未进行“选择”中的任何转换,则要转换到的状态的名称。
https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-choice-state.html