我定义了以下 aws 步骤函数步骤
"Step": {
"Type": "Task",
"Resource": "arn:aws:states:::states:startExecution.sync",
"Parameters": {
"Name.$": "$.executionName",
"StateMachineArn": "${arn}",
"Input.$": "$"
}
...
我遇到了这个文档它说明了如何关联工作流程执行
我尝试在上面的步骤中应用这一点,但我不断收到错误:
InvalidDefinition: Invalid State Machine Definition: 'SCHEMA_VALIDATION_FAILED: The value for the field 'Input.$' must be a valid JSONPath or a valid intrinsic function call at ...
"Step": {
"Type": "Task",
"Resource": "arn:aws:states:::states:startExecution.sync",
"Parameters": {
"Name.$": "$.executionName",
"StateMachineArn": "${arn}",
"Input.$": "States.JsonMerge($, {'AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID': $$.Execution.Id}, false)"
}
...
不确定我在这里做错了什么
不确定第一个
$
是否是您在执行 sfn 时提供的步骤/输入中的先前输入,但无论如何..您可以在 Input
字段中构造自己的 json,如下所示:
"Step": {
"Type": "Task",
"Resource": "arn:aws:states:::states:startExecution.sync",
"Parameters": {
"Name.$": "$.executionName",
"StateMachineArn": "${arn}",
"Input": {
"PreviousInput.$": "$",
"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
}
}