【问题标题】:How to change AWS Step function's State if there's changes in external json status如果外部 json 状态发生变化,如何更改 AWS Step 函数状态
【发布时间】:2019-02-23 03:19:40
【问题描述】:

我正在使用阶跃函数设置订单流程,我想执行其状态并等待 1 分钟,此时状态将发生变化。使用 lambda 我从返回 Order 对象的外部 api 创建了一个 http/s 请求。

 "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 将其更改为“待批准”。

【问题讨论】:

  • 你是什么意思“我得到相同的价值”?第一步中的 Lambda 会返回什么?你能分享你正在使用的真正的步进函数定义吗?
  • @MilanCermak 我更新了我的问题。我对 AWS Step 函数和 Lambda 真的很陌生。

标签: aws-lambda aws-step-functions


【解决方案1】:

请记住,在 AWS Step Functions 中,如果您有一个输入 ($.x),并且您没有在任何状态下的 ResultPath 中使用此 ($.x) 来更改值,那么 $.x 的值始终是相同的。我没有在您的流程中看到您更改或更新 $ .status 的值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多