Aws lambda 如何防止Aws Step函数插入父键;输入“;当它调用Lambda时?

Aws lambda 如何防止Aws Step函数插入父键;输入“;当它调用Lambda时?,aws-lambda,aws-step-functions,Aws Lambda,Aws Step Functions,我如何定义一个AWS Step函数状态,该状态将与我提供给Step函数的已调用Lambda完全相同的散列传递给该Lambda(例如,不将输入散列向下推一级到新键“input”) 我的ruby AWS Lambda函数假设传入的事件散列如下所示: { "queryStringParameters": { "foo": "bar" } } 当我在AWS Step函数上执行测试时,调用该lambda并提供上面显示的相同哈希,

我如何定义一个AWS Step函数状态,该状态将与我提供给Step函数的已调用Lambda完全相同的散列传递给该Lambda(例如,不将输入散列向下推一级到新键“input”)

我的ruby AWS Lambda函数假设传入的
事件
散列如下所示:

{
  "queryStringParameters": {
    "foo": "bar"
  }
}
当我在AWS Step函数上执行测试时,调用该lambda并提供上面显示的相同哈希,传递到lambda中的
事件
哈希与我提供给Step函数的哈希不同。。。它有一个称为“输入”的额外父键:

在Step函数中,调用lambda的状态定义如下:

    "invoke foobar": {
      "Type": "Task",
      "Resource": "arn:aws:states:::lambda:invoke",
      "Parameters": {
        "FunctionName": "arn:aws:lambda:xxxx:xxxx:function:xxxx:$LATEST",
        "Payload": {
          "Input.$": "$"
        }
      },
      "Next": "Done",
      "TimeoutSeconds": 10
    },
或者一个步进函数总是把它的输入放在一个叫做“输入”的键下吗

如果在这种情况下,“输入”键总是添加到传递给Lambda函数的事件哈希中,那么如何编写Lambda,以便可以从Step函数(假定根键为“Input”)和API网关(使用不同的根键“queryStringParameters”)调用它呢?

而不是这样:

"Payload": {
  "Input.$": "$"
}
您应该这样做:

"Payload.$": "$"
将输入直接传递到lambda函数的有效载荷。

而不是:

"Payload": {
  "Input.$": "$"
}
您应该这样做:

"Payload.$": "$"

这将直接将输入传递到lambda函数的
有效负载

太好了,谢谢!我的头还在绕着ASL。太好了,谢谢!我的头还在缠着ASL。