我正在使用step function设置一个订单流程,我想执行它的状态,并在状态发生变化时等待1分钟。我使用lambda创建了一个来自外部api的http/s请求,该请求返回一个Order对象。
"StartAt": "Process Order",
"States": {
"Process Order": {
"Type": "Task",
"Resource": "arn:aws:lambda:FUNCTIONTOREQUESThttpJSON",
"Next": "Is Received?"
},
"Is Received?":{
"Type" : "Choice",
"Choices": [
{
"Variable": "$.status",
"StringEquals": "Received",
"Next": "Received"
},
{
"Variable": "$.status",
"StringEquals": "Cancelled",
"Next": "Cancelled"
}
]
},
"Received":{
"Type": "Wait",
"Seconds": 60,
"Next": "Is For Approval or Cancelled?"
},
"Is For Approval or Cancelled?":{
"Type" : "Choice",
"Choices": [
{
"Variable": "$.status",
"StringEquals": "For Approval",
"Next": "nextState"
},
{
"Variable": "$.status",
"StringEquals": "Cancelled",
"Next": "nextState"
}
]
},假设当前状态=“已接收”(来自Lambda函数http请求的json)如果状态变为“待批准”,则应转到“待批准”状态。但我得到了相同的状态值“已接收”,尽管我已经从外部API将其更改为“待批准”。
发布于 2019-02-23 03:19:40
请记住,在AWS函数中,如果您有一个输入( $.x ),并且您没有在处于某个状态的任何ResultPath中使用此输入($.x)来更改该值,则$.x的值始终是相同的。我在您的流中看不到更改或更新$ .status的值的地方
https://stackoverflow.com/questions/54742992
复制相似问题