无法从使用startExecution设置的“步进函数”输入中传递胶水作业参数

问题描述

我正在尝试从步骤函数将参数传递给glue作业,但变量未解析。这是我的代码。 我的状态机只有一步,如下所示。

{
  "Comment": "Test Function","StartAt": "StartglueJob","States": {
    "StartglueJob": {
      "Type": "Task","Resource": "arn:aws:states:::glue:startJobRun.sync","Parameters": {
        "JobName": "my-job-name","Arguments": {
          "--output": "$.outputpath"
        }
      },"End": true
    }
  }
}

我正在使用boto3从Lambda调用step函数,我的代码如下:

stepclient.start_execution(
        stateMachineArn='arn:aws:states:XXXX:XXXX:stateMachine:MyStateMachine',name=funcation_name,input="{\"outputpath\": \"new-sr-out\"}"
        )

我想从lambda一直到粘胶作业一直传递--output的值。但是,价值并没有得到解决

请让我知道我在哪里做错了。

解决方法

如果您想在Parameters中使用JsonPath,则密钥需要以.$结尾。

请参阅ASL规范中有关有效负载模板的部分:https://states-language.net/#payload-template