amazon-web-services - AWS Step Functions SDK:状态类型`Choice`不支持方法`next`
问题描述
我有一个带有选择状态的工作流,它检查某个变量,如果满足条件,它会再次启动上一步,如果不满足,则进入下一步。
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`.
为什么这会引发错误?在选择状态之后有下游任务是有意义的。
我从这里得到了例子
解决方案
选择状态不支持 End 字段。此外,他们仅在其“选择”字段中使用“下一步”。
您也可以使用“默认”:如果没有选择选项中的任何转换,则转换到的状态名称。
https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-choice-state.html
推荐阅读
- javascript - 如何使背景中的图片随着主滑块的变化而变化?
- powershell - PowerShell 过滤器、Where-Object、Get-ChildItem
- lua - 循环矩阵
- javascript - 如何在 setTimeout() 完成运行之前阻止其他代码运行?
- email - 使用具有不同名称的相同“发件人”电子邮件地址
- python-3.x - 在每个while循环中添加更多变量以产生结果
- c# - 将本地计算机上的 MDF 文件同步到 C# 中项目的 Web 服务器
- sql - 查询连接地址
- node.js - 使用 Let's Encrypt SSL 证书的 ExpressJS 节点应用程序中的握手失败
- java - 为什么这段简单的代码会输出损坏的类文件?