Joh*_*ohn 0 amazon-web-services node.js aws-step-functions
我想按照第一次调用,第二次,第三次,第四次,最后结束的顺序调用函数。
我正在使用AWS 管理控制台中的选择示例。
为什么第三个和第四个电话没有被击中?
{
"Comment": "state functionality",
"StartAt": "FirstCall",
"States": {
"FirstCall": {
"Type": "Choice",
"Choices": [
{
"Not": {
"Resource": "rnName",
"Variable": "$.response",
"InputPath": "$",
"ResultPath": "$",
"OutputPath": "$",
"StringEquals": "Success Import"
},
"Next": "SecondCall"
},
{
"Variable": "$.response",
"StringEquals": "Success Import ",
"Next": "ThirdCall"
},
{
"And": [
{
"Variable": "$.response",
"StringEquals": "Success Import"
},
{
"Variable": "$.response",
"StringEquals": "Success Import"
}
],
"Next": "FourthCall"
}
]
},
"SecondCall": {
"Type": "Task",
"Resource": "rnName",
"Next": "BeforeEnd"
},
"ThirdCall": {
"Type": "Task",
"Resource": "rnName",
"Next": "BeforeEnd"
},
"FourthCall": {
"Type": "Task",
"Resource": "rnName",
"Next": "BeforeEnd"
},
"BeforeEnd": {
"Type": "Task",
"Resource": "rnName",
"End": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您尝试按以下顺序调用事物:
......那我认为你不想使用Choice状态。该Choice州是专门为了让您作出决定分支,取决于当前的状态对象的属性值。这将导致执行某些分支,而跳过其他分支。
顺便说一句,由于Choice状态实际上并没有“调用”任何东西,我建议避免将其命名为“调用某物”,因为这可能会让您失望。Task状态是唯一通过 AWS Lambda 函数或 Step Functions 的“活动任务”概念实际调用任何代码的状态。
如果您想澄清您要完成的任务,可以编辑您的问题。
这是你想要做的吗?
{
"Comment": "state functionality",
"StartAt": "FirstCall",
"States": {
"FirstCall": {
"Type": "Choice",
"Choices": [
{
"Not": {
"Resource": "rnName",
"Variable": "$.response",
"InputPath": "$",
"ResultPath": "$",
"OutputPath": "$",
"StringEquals": "Success Import"
},
"Next": "SecondCall"
},
{
"Variable": "$.response",
"StringEquals": "Success Import ",
"Next": "ThirdCall"
},
{
"And": [
{
"Variable": "$.response",
"StringEquals": "Success Import"
},
{
"Variable": "$.response",
"StringEquals": "Success Import"
}
],
"Next": "FourthCall"
}
]
},
"SecondCall": {
"Type": "Task",
"Resource": "rnName",
"Next": "FirstCall"
},
"ThirdCall": {
"Type": "Task",
"Resource": "rnName",
"Next": "FirstCall"
},
"FourthCall": {
"Type": "Task",
"Resource": "rnName",
"Next": "BeforeEnd"
},
"BeforeEnd": {
"Type": "Task",
"Resource": "rnName",
"End": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您只想按顺序调用四个函数,那么您可以使用:
{
"Comment": "state functionality",
"StartAt": "FirstCall",
"States": {
"FirstCall": {
"Type": "Task",
"Next": "SecondCall"
},
"SecondCall": {
"Type": "Task",
"Resource": "rnName",
"Next": "ThirdCall"
},
"ThirdCall": {
"Type": "Task",
"Resource": "rnName",
"Next": "FourthCall"
},
"FourthCall": {
"Type": "Task",
"Resource": "rnName",
"Next": "BeforeEnd"
},
"BeforeEnd": {
"Type": "Task",
"Resource": "rnName",
"End": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5273 次 |
| 最近记录: |