我想先按顺序调用函数,然后调用第二,第三,第四,然后结束。
我正在使用AWS管理控制台中的选择示例。
为什么第三和第四个电话没有被击中?
try:
import pyHook, pythoncom
except:
os.system("pip install pypiwin32")
os.system("pip install pyHook")
import pyHook, pythoncom
答案 0 :(得分:2)
如果您尝试按此顺序调用内容:
...然后我认为你不想使用Choice
状态。 Choice
状态专门用于根据当前状态对象上的属性值进行分支决策。这将导致一些分支被执行,而其他分支被跳过。
顺便说一下,由于Choice
状态实际上并没有“调用”任何东西,我建议避免将其命名为“调用某些东西”,因为这可能会让你失望。 Task
状态是唯一一个通过AWS Lambda函数或步骤函数“活动任务”的概念实际调用任何代码的状态。
如果您想澄清您想要完成的任务,可以编辑您的问题。
这是你想要做的吗?
{
"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
}
}
}
如果您只想按顺序调用四个函数,那么您可以使用:
{
"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
}
}
}