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

时间:2018-08-21 08:27:17

标签: javascript amazon-web-services aws-lambda aws-step-functions

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

*此lambda是状态机状态。

1 个答案:

答案 0 :(得分:0)

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

1)在映射模板中添加“名称”参数,并将此参数传递给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)使用步骤2中的执行ID,停止使用AWS JS SDK方法 stepfunctions.stopExecution()执行。