是否可以让单个参数在步进函数中有条件地接收其值?

Is it possible to have a single parameter receive its value conditionally in a step function?

我有一个参数 'request_id',我想从 JSON 的两种不同格式中获取一个 ID,并将其发送到我的步进函数任务的输入。

第一个表格如下所示:

{ "request_id": "abcde-abcd-abcde-abc" }

第二个是这种形式:

{ "request": { "id": "abcde-abcd-abcde-abc", }

目前,我有一个参数看起来像

"request_id.$": "$.request_id"

但想要等同于(这个不起作用)的东西

"request_id.$": "$.['request_id','request.id']"

这在 step 函数中是否可行,或者我是否需要将这两个请求 ID 拆分为我的 JSON 中的两条路径或在函数中执行?

一个解决方法是选择状态并检查第一个变量是否存在:

{
    "Variable": "$.request_id",
    "IsPresent": true
}

然后根据结果进行两次不同的赋值。

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

{
  "StartAt": "choice",
  "States": {
    "choice": {
      "Type": "Choice",
      "Choices": [
        {
          "Variable": "$.request_id",
          "IsPresent": true,
          "Next": "assignment1"
        }
      ],
      "Default": "assignment2"
    },
    "assignment1": {
      "Type": "Pass",
      "Result": "World",
      "End": true
    },
    "assignment2": {
      "Type": "Pass",
      "Result": "World",
      "End": true
    }
  }
}