Как отправить уведомление о каждом выполнении задачи в автомате по шаговым функциям AW? - PullRequest
0 голосов
/ 09 апреля 2020

Я работаю над функциями Amazon Step, чтобы использовать рабочий процесс для нескольких пакетных заданий. Требование заключается в том, что пакетные задания должны выполняться последовательно, и всякий раз, когда задание переходит от одного к другому, отправляет уведомление о состоянии выполнения заданий в SNS topi c. Мне нужно отправить уведомление для УСПЕХА и ОТКАЗА задачи.

Я пробовал события выполнения, используя правила событий Cloudwatch, но события выполнения дают только информацию о выполнении конечного автомата, но не о выполнении задач.

1 Ответ

0 голосов
/ 21 апреля 2020

Поскольку вы обнаружили, что состояния не присутствуют в событиях Cloudwatch, необходимо добавить это как отдельный шаг, для этого нет пути, есть шаг уведомления, который либо выполняет лямбду, либо sync для SNS.

Существует также другой способ сделать это, так как вы можете составлять пошаговые функции пошаговых функций. Таким образом, у вас есть родительская функция шага и ваша дочерняя функция шага. Вашей дочерней пошаговой функцией может быть само пакетное задание, и тогда вы можете использовать события Cloudwatch в функции шага batch-job-step-function:

"BatchJob" : {
      "Comment": "This snippet is in the parent step function. It will kick off another step function, called: batch-job-step-function",
      "Type": "Task",
      "Resource": "arn:aws:states:::states:startExecution.sync",
      "Parameters": {
        "StateMachineArn": "arn:aws:states:us-east-1:TODO:stateMachine:batch-job-step-function",
        "Input": {
          "batchJobInput.$": "$$.Execution.Input.batchJobInput"
        }
      },
      "End": true | "Next" : "TODO"
    }

Теперь вы можете назначить Правила событий Cloudwatch для: arn:aws:states:us-east-1:TODO:stateMachine:batch-job-step-function

...