#serverless-framework #serverless #aws-step-functions
#бессерверный фреймворк #бессерверная #aws-step-функции
Вопрос:
Я пытаюсь написать пошаговую функцию, в которой каждая функция.
Допустим, это вывод одной из функций
{
...
"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"
}
...
Как мне использовать динамическую ссылку в состояниях выбора?
Ответ №1:
JSONPath не поддерживает динамические ключи, поэтому это невозможно. Вам необходимо реструктурировать входные данные или объединить правила множественного выбора с оператором And
сравнения, чтобы проверить соответствующее свойство на основе current
:
{
"And": [
{
"Variable": "$.current",
"StringEquals": "2"
},
{
"Variable": "$.foo.2",
"StringEquals": "two"
}
],
"Next": "TwoFunction"
}