Как выполнить повторную попытку пошаговой функции AWS без ошибки

Я пытаюсь достичь функциональности, при которой я хочу повторить шаг несколько раз в зависимости от результата предыдущего вызова. т.е. если stepA возвращает true, я могу продолжить, если false, повторите попытку для того же шага. Но повторные попытки пошаговой функции AWS работают только с ошибками, и это тоже не с ошибками времени выполнения.

Есть ли способ выполнить эту повторную попытку в функции AWS Step.


person Sanjib    schedule 02.01.2020    source источник


Ответы (2)


Вы можете добиться этого с помощью Выбор Состояние. Вот простой пример того, как это может выглядеть:

{
  "StartAt": "Task",
  "States": {
    "Task": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:FUNCTION_NAME",
      "Next": "Retry?"
    },
    "Retry?": {
      "Type" : "Choice",
      "Choices": [
        {
          "Variable": "$.retry",
          "BooleanEquals": true,
          "Next": "Task"
        }
      ],
      "Default": "EndState"
    },
    "EndState": {
      "Type": "Pass",
      "End": true
    }
  }
}
person NePh    schedule 08.01.2020

Я считаю, что в этом случае вам нужно определить параметр, называть его «повторная попытка» с ложным начальным значением, в случае исключения не возникает и ошибка, при первой попытке установить для «rertied» значение true и переместить предыдущий шаг в во-вторых, проверьте флаг, и если он верен, перейдите к следующему шагу

person AWS PS    schedule 02.01.2020