Шаговая функция AWS: использовать вложенную переменную внутри условия

Я пытаюсь написать пошаговую функцию, в которой каждая функция.

Скажем, это результат одной из функций:

{ 
    ...
    "foo": {
      "1": "one"
      "2": "two", 
      "5": "five"
     },
    "current": 2
    ...
}

У меня есть оператор выбора, который должен проверить значение test_key и разыменовать его в foo словаре.

...
"ChoiceState": {
      "Type" : "Choice",
      "Choices": [
        {
          "Variable": "$.foo['$.current']",  <--- This is unsupported
          "StringEquals": "two",
          "Next": "TwoFunction"
        }, 
        {
          "Variable": "$.foo['$.current']",  <--- This is unsupported
          "StringEquals": "three",
          "Next": "ThreeFunction"
        }
        ...
      ],
      "Default": "DefaultFunction"
    }
...

Как использовать динамическую ссылку в состояниях выбора?


person Ganesh Satpute    schedule 29.12.2020    source источник


Ответы (1)


JSONPath не поддерживает динамические ключи, поэтому это невозможно. Вам необходимо реструктурировать свои входные данные или объединить несколько правил выбора с оператором сравнения And, чтобы проверить соответствующее свойство на основе current:

{
  "And": [
    {
      "Variable": "$.current",
      "StringEquals": "2"
    },
    {
      "Variable": "$.foo.2",
      "StringEquals": "two"
    }
  ],
  "Next": "TwoFunction"
}
person adamwong    schedule 05.01.2021