如何确保嵌套 JSONata 表达式在 AWS Step Functions 中解析?
我对某个状态有以下输入:
{ "value1": "something", "value2": "{% $states.input.value1 %}" }
value2
字段旨在动态引用value1
。但是,它并没有按预期解决。我尝试通过在状态输出中创建一个新对象并传递 JSON 字符串来解决此问题:
{
"mapped": "{% $states.input %}"
}
但是,
value2
中的嵌套 JSONata 表达式仍未解决。
预期行为:表达式
{% $states.input.value1 %}
应动态解析为 value1
的值。解析后的输出如下所示:
{ "value1": "something", "value2": "something" }
实际行为:表达式保留为字符串并且不会动态解析。输出看起来像这样:
{ "value1": "something", "value2": "{% $states.input.value1 %}" }
有没有办法强制在这种情况下解析此类表达式?输入可能会有所不同,但引用将始终指向有效路径。任何有关如何解决此问题的指导将不胜感激!
目前,不评估 JSONata 表达式的状态输入。
我建议添加“通过”状态作为工作流程的第一步。在该状态下,您可以使用分配将 $states.input 中的值分配给变量。
有关变量分配的详细说明,请参阅文档中的分配字段中的计算顺序。