gpt4 book ai didi

amazon-web-services - AWS 步骤函数和可选参数

转载 作者:行者123 更新时间:2023-12-03 15:47:28 25 4
gpt4 key购买 nike

我想为传递给步进函数的参数设置一个默认值

例如。,

"Parameters": {
"foo.$": "$.foo" OR "bar" if "$.foo" not specified
}

有没有办法用 JSONPath 原生地做到这一点,还是我必须使用选择 + 通过状态?

如果在输入中未指定参数时有办法不中断,我什至会满足于使用选择/传递。

如果我不包括 "foo": ""在输入中,我会得到一个类似 "JSONPath ... could not be found in the input." 的错误

最佳答案

我正在使用 Choice 的组合来解决这个问题和 Pass状态。假设状态机至少获得一个空输入对象,您可以使用 IsPresent 检查它是否存在成员。 Choice 中的比较运算符状态。如果您的欲望变量不存在,您可以路由到 Pass state 注入(inject)一个默认的回退对象。
示例输入

{
"keyThatMightNotExist": {
"options": {
"foo": "bar",
"baz": false
},
"id": 1234
}
}
状态机定义
{
"Comment": "An example for how to deal with empty input and setting defaults.",
"StartAt": "Choice State: looking for input",
"States": {
"Choice State: looking for input": {
"Type": "Choice",
"Choices": [
{
检查是否存在,如果存在,还验证子成员:

"And": [
{
"Variable": "$.keyThatMightNotExist",
"IsPresent": true
},
{
"Variable": "$.keyThatMightNotExist.id",
"IsNull": false
}
],
如果存在关键变量及其子节点 "id"true ,跳过下一个状态并跳到“与 $.keyThatMightNotExist 一起使用的状态”
          "Next": "State that works with $.keyThatMightNotExist"
}
],
"Default": "LoadDefaults"
},
以下是我们注入(inject)默认值的地方:

"LoadDefaults": {
"Type": "Pass",
"Result": {
"id": 0,
"text": "not applicable"
},
"ResultPath": "$.keyThatMightNotExist",
"Next": "State that works with $.keyThatMightNotExist"
},
此时,有一个对象可以使用。来自实际输入,或使用默认值:

"State that works with $.keyThatMightNotExist": {
"Type": "Succeed"
}
}
}
enter image description here
如需更多信息,请参阅 AWS Step FunctionsDeveloper Guide, choice-state-example

关于amazon-web-services - AWS 步骤函数和可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59056043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com