AWS Step Function NumericGreaterThan 参数
AWS Step Function NumericGreaterThan a Parameter
在 AWS Step Function 的 Choice 步骤中,我们想要将 AWS Lambda 函数的结果与使用 "NumericGreaterThan" 作为参数给出的阈值进行比较。
在我们的示例中,我们将 lambda 的计算值与事件给出的阈值进行比较。
我尝试按以下方式定义我的步进函数:
{
"StartAt": "Check Enough Data",
"States": {
"Check Enough Data": {
"Type": "Task",
"Resource": "arn:aws:lambda:REGION:ID:function:FUNCTION:$LATEST",
"Next": "Validate Count",
"ResultPath": "$.count"
},
"Validate Count": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.count",
"NumericGreaterThan": "$.threshold",
"Next": "Succeed State"
}
],
"Default": "Wait 24 Hours"
},
"Wait 24 Hours": {
"Type": "Wait",
"Seconds": 86400,
"Next": "Check Enough Data"
},
"Succeed State": {
"Type": "Succeed"
}
}
}
但出现错误类型的预期值:整数、浮点数而不是字符串。
如果我用硬编码值(如 20)替换“$.threshold”,它可以工作,但该值不是我想要的动态值。
以下输入应使 lambda 进入成功状态:
{
"country": "japan",
"threshold": 40
}
我知道我们可以用另一个 Lambda 函数替换 Choice 步骤,但从成本效益的角度我们不想这样做。
有人知道如何解决这个问题吗?
比较运算符需要在“:”后有一个整数。不能是字符串。
解决方法是将 "Variable": "$.count"
更改为 "Variable": "$.count/$.threshold"
,这样您就可以获得 "NumericGreaterThan": 1
。
在这种情况下,您有定义 Choice 操作的计数和阈值。
如果这能解决您的问题,请告诉我
精度:"Variable": "$.count"
变为 "Variable": "$.ratio"
其中 ratio = count/threshold
您可以根据文档使用 'NumericGreaterThanPath' 运算符 https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-choice-state.html
在选择规则中,通过将 'Path' 附加到支持的比较运算符的名称,可以将变量的值与状态输入中的另一个值进行比较。
NumericEqualsPath、NumericGreaterThanPath、NumericGreaterThanEqualsPath 等
在 AWS Step Function 的 Choice 步骤中,我们想要将 AWS Lambda 函数的结果与使用 "NumericGreaterThan" 作为参数给出的阈值进行比较。
在我们的示例中,我们将 lambda 的计算值与事件给出的阈值进行比较。
我尝试按以下方式定义我的步进函数:
{
"StartAt": "Check Enough Data",
"States": {
"Check Enough Data": {
"Type": "Task",
"Resource": "arn:aws:lambda:REGION:ID:function:FUNCTION:$LATEST",
"Next": "Validate Count",
"ResultPath": "$.count"
},
"Validate Count": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.count",
"NumericGreaterThan": "$.threshold",
"Next": "Succeed State"
}
],
"Default": "Wait 24 Hours"
},
"Wait 24 Hours": {
"Type": "Wait",
"Seconds": 86400,
"Next": "Check Enough Data"
},
"Succeed State": {
"Type": "Succeed"
}
}
}
但出现错误类型的预期值:整数、浮点数而不是字符串。 如果我用硬编码值(如 20)替换“$.threshold”,它可以工作,但该值不是我想要的动态值。
以下输入应使 lambda 进入成功状态:
{
"country": "japan",
"threshold": 40
}
我知道我们可以用另一个 Lambda 函数替换 Choice 步骤,但从成本效益的角度我们不想这样做。
有人知道如何解决这个问题吗?
比较运算符需要在“:”后有一个整数。不能是字符串。
解决方法是将 "Variable": "$.count"
更改为 "Variable": "$.count/$.threshold"
,这样您就可以获得 "NumericGreaterThan": 1
。
在这种情况下,您有定义 Choice 操作的计数和阈值。
如果这能解决您的问题,请告诉我
精度:"Variable": "$.count"
变为 "Variable": "$.ratio"
其中 ratio = count/threshold
您可以根据文档使用 'NumericGreaterThanPath' 运算符 https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-choice-state.html
在选择规则中,通过将 'Path' 附加到支持的比较运算符的名称,可以将变量的值与状态输入中的另一个值进行比较。
NumericEqualsPath、NumericGreaterThanPath、NumericGreaterThanEqualsPath 等