如何将执行 ID 从状态机传递给 Lambda?

How to pass Execution Id from State Machine to Lambda?

我通过调用 API 网关端点来启动状态机执行。 如果我没有执行 ID,如何在 lambda 中接收执行 ID 或者如何在 lambda 中停止状态机执行?

*此 lambda 是状态机状态。

要停止 lambda 中的状态机执行:

1) 将"name"参数添加到您的映射模板并将此参数传递给您的lambda(如果您不使用API网关映射模板,您可以在请求正文中传递名称)。它应该是独一无二的。

#set($allParams = $input.path('$'))
#set($discard=$allParams.put('executionName', $context.requestId))
{
  "input": "$util.escapeJavaScript($input.json('$'))",
  "name": "$context.requestId",
  "stateMachineArn": "arn here"
}

2) 连接执行id:

arn:aws:states:yourRegion:yourAccountId:execution:yourStateMachineName:executionName(which you have specified above)

3) 使用 AWS JS SDK 方法 stepfunctions.stopExecution() 停止执行,使用步骤 2 中的执行 ID。