在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的成本。
我试着四处看看,但在任何地方都找不到这份文件。
发布于 2021-03-19 19:22:14
您可以执行另一个工作流,您不能等待结果。我相信您只需要从资源中删除.sync。如果您需要等待第二个函数的结果,您将无法在一个快速工作流中这样做。
标准工作流和Express工作流支持相同的服务集成集,但不支持相同的集成模式。Express工作流不支持运行作业(.sync)或等待回调(.waitForTaskToken)。有关更多信息,请参见标准工作流与Express工作流。
发布于 2021-10-13 00:21:15
您可以使用StartSyncExecution API同步执行快速执行,现在使用"Resource": "arn:aws:states:::aws-sdk:sfn:startSyncExecution"作为Step函数中的AWS SDK集成支持该API。
"NestedExpressWorkflow": {
"Type": "Task",
"Resource": "arn:aws:states:::aws-sdk:sfn:startSyncExecution",
"Parameters": {
"StateMachineArn": <your_express_state_machine>,
"Input.$": "$"
},
"Next": "NextState"
}https://stackoverflow.com/questions/66714237
复制相似问题