合并 json 作为 AWS SFN startExeuction 的输入

问题描述 投票:0回答:1

我定义了以下 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)"
  }
...

不确定我在这里做错了什么

amazon-web-services aws-step-functions
1个回答
0
投票

不确定第一个

$
是否是您在执行 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"
           }
      }
© www.soinside.com 2019 - 2024. All rights reserved.