如何在 AWS Step Functions 中的数组内使用 jsonPath

ale*_*lov 10 amazon-web-services aws-step-functions

我正在编写一个 AWS 步骤函数,对于其中一个步骤,我希望调用一个接受数组作为输入之一的 lambda。但是,如果我尝试将 JsonPath 传入数组,则会得到

The value for the field 'arrayField.$' must be a STRING that contains a JSONPath but was an ARRAY
Run Code Online (Sandbox Code Playgroud)

我的步骤函数定义:

{
  "StartAt": "First",
  "States": {
  "First": {
    "Type": "Pass",
    "Parameters": {
      "type": "person"
    },
    "ResultPath": "$.output",
    "Next": "Second"
  },
    "Second": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-east-1:<aws_id>:function:MyFunction",
      "Parameters": {
        "regularParameter": "some string",
        "arrayParameter.$": ["$.output.type"]
      },
      "Next": "Succeed"
    },
    "Succeed": {
      "Type": "Succeed"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如何在数组中使用 jsonPath?

Pet*_*vic 11

从新版本开始,您可以使用内在函数States.Array

  "arrayParameter.$": "States.Array($.output.type)"
Run Code Online (Sandbox Code Playgroud)

https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html

  • 它解决了我需要一个静态和一个动态数组元素 "Args.$": "States.Array('fixed_text',$.ProcessName)" 时的问题 (3认同)