Amazon web services 使AWS Step功能参数可选
有没有办法使AWS Step功能参数可选? 或 接受一个表达式,表示如果传递了该值,则选择该值,否则默认为某个值 例如: 假设我的参数定义如下:Amazon web services 使AWS Step功能参数可选,amazon-web-services,aws-step-functions,Amazon Web Services,Aws Step Functions,有没有办法使AWS Step功能参数可选? 或 接受一个表达式,表示如果传递了该值,则选择该值,否则默认为某个值 例如: 假设我的参数定义如下: "Parameters": { "comment": "Selecting what I care about.", "MyDetails": { "size.$": "$.inputSize
"Parameters": {
"comment": "Selecting what I care about.",
"MyDetails": {
"size.$": "$.inputSize"
}
},
如果我不传递inputSize,step函数将失败。是否有办法将其作为可选参数,或使用类似inputSize | | 10的表达式,其中如果未传递任何内容,将选择10简短回答是否 关于Step函数state input/output和state InputPath/OutputPath,需要注意两件事
inputSize
属性设置为零或负数,无论是在前一个状态还是在step函数调用期间(不要忘记在各种中间状态中传递它)。然后,根据inputSize
属性的值,您可以在工作流中使用不同的路由
另一种方法是使用一个强制布尔属性,该属性告诉输入或结果中是否存在特定属性。如果我们想检查属性是否为空,并在工作流中采用不同的路径,这可能会很有帮助。我自己通过添加一个额外的步骤来解决这个问题 因此,我的StepFunction会在自身上循环,所以第一次执行时,该值不存在,我需要传入0,然后在循环时递增
"Prepare": {
"Type": "Task",
"TimeoutSeconds": 60,
"Resource": "...",
"ResultPath": "$.prepareResult",
"Parameters": {
"Runs.$": "$.prepareResult.runs"
},
...
"Next": "PrepareDecision"
},
第一次运行此操作时,prepareResult
不存在,因此执行时会抛出错误
一旦执行,它将返回一个结果,该结果将附加到prepareResult
,并包含运行的值
默认值包括一个PrepareDefaults
步骤,该步骤在该步骤之前执行
"PrepareDefaults": {
"Type": "Pass",
"ResultPath": "$.prepareResult",
"Parameters": {
"runs": 0
},
"Next": "Prepare"
},
parameters属性按原样返回,并分配给路径prepareResult
,该路径允许它在下一步中存在
执行StepFunction时,会传入默认值0
注意:在PrepareDefaults状态下,必须为要分配给的参数设置ResultPath,否则将覆盖/全部/当前执行中的数据
注2:您可以选择使用此方法来表示如果值存在,则直接转到状态X;如果值不存在,则转到Y以在转到X之前对其进行默认设置。$[?(@.inputSize)].inputSize
。如果存在inputSize
,则返回inputSize
,否则返回空对象或数组?