问题描述
在 Standard Workflow
中,我们可以使用
Standard workflow
{
"Type": "Task","Resource": "arn:aws:states:::states:startExecution.sync:2","Parameters": {
"StateMachineArn": "${nestedStateMachineArn}",...
}
...
当我们尝试对 Express workflow
执行相同操作时,我们当然会得到 Express state machine does not support '.sync' service integration
。 aws
如此预期的行为说明了这一点。
是否有另一种方法可以从另一个 Express workflow
执行 Express workflow
并以某种方式获得执行结果/输出?我可以想到最后的手段 - 使用 Lambda
函数来执行嵌套的工作流同步并等待响应,也就是说,它会增加函数不必要地等待 StateMachine
的成本。
我试图环顾四周,但在任何地方都找不到此文档。
解决方法
您可以执行另一个工作流程,只是不能等待结果。我相信您只需要从资源中删除 .sync
。如果您需要等待第二个函数的结果,您将无法在快速工作流中执行此操作。
来自Service Integrations with AWS Step Functions
标准工作流和快速工作流支持相同的服务集成集,但不支持相同的集成模式。快速工作流不支持运行作业 (.sync) 或等待回调 (.waitForTaskToken)。有关详细信息,请参阅 Standard vs. Express Workflows。