Как изменить состояние функции шага AWS, если есть изменения во внешнем состоянии json - PullRequest
0 голосов
/ 18 февраля 2019

Я устанавливаю процесс заказа, используя пошаговую функцию, и я хочу выполнить его состояния и ждать в течение 1 минуты, когда статус изменится.Используя лямбду, я создал запрос http / s из внешнего API, который возвращает объект 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"
          }
      ]
    },

Допустим, текущий статус = "Получено" (json от http-запроса лямбда-функции), если статус изменен на "Для утверждения", он должен перейти в состояние "Для утверждения".Но я получаю то же значение состояния «Получено», хотя я уже изменил его на «Для утверждения» из внешнего API.

1 Ответ

0 голосов
/ 22 февраля 2019

Помните, что в пошаговых функциях AWS, если у вас есть вход ($ .x) и вы не используете его ($ .x) в каком-либо ResultPath в состоянии для изменения значения, всегда значение $ .x являетсятак же.Я не вижу в вашем потоке, где вы меняете или обновляете значение $ .status

...