Express Step Function 中的 AWS Express Step Function 执行

RVi*_*Vid 4 amazon-web-services aws-step-functions aws-serverless

Standard Workflow我们可以愉快地调用另一个Standard workflow使用

{
  "Type": "Task",
  "Resource": "arn:aws:states:::states:startExecution.sync:2",
  "Parameters": {
    "StateMachineArn": "${NestedStateMachineArn}",
    ...
  }
  ...
Run Code Online (Sandbox Code Playgroud)

当我们尝试做同样的事情时,Express workflow我们当然会得到Express state machine does not support '.sync' service integration. 这是由aws预期的行为所表明的。

是否有另一种方法可以Express workflow从另一个执行Express workflow并以某种方式获取执行结果/输出?我可以想到最后的手段 - 使用Lambda函数来执行嵌套工作流同步并等待响应,也就是说,这会增加函数不必要地等待的成本StateMachine

我试图环顾四周,但在任何地方都找不到这个记录。

ada*_*ong 5

您可以使用 API 同步执行 Express 执行StartSyncExecution,现在支持使用该 API 作为 Step Functions 中的AWS 开发工具包集成"Resource": "arn:aws:states:::aws-sdk:sfn:startSyncExecution"

"NestedExpressWorkflow": {
  "Type": "Task",
  "Resource": "arn:aws:states:::aws-sdk:sfn:startSyncExecution",
  "Parameters": {
    "StateMachineArn": <your_express_state_machine>,
    "Input.$": "$"
  },
  "Next": "NextState"
}
Run Code Online (Sandbox Code Playgroud)