如何将执行 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。
我通过调用 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。