Из AWS Docs: Step Functions — это сервис бессерверной оркестровки, который позволяет комбинировать функции AWS Lambda и другие сервисы AWS для создания критически важных для бизнеса приложений. С помощью графической консоли Step Functions вы видите рабочий процесс своего приложения как серию управляемых событиями шагов. Step Functions основана на конечных автоматах и задачах. Конечный автомат — это рабочий процесс. Задача — это состояние в рабочем процессе, которое представляет собой единицу работы, которую выполняет другой сервис AWS. Каждый шаг рабочего процесса — это состояние.
С помощью встроенных элементов управления Step Functions вы проверяете состояние каждого шага рабочего процесса, чтобы убедиться, что ваше приложение работает в правильном порядке и должным образом. В зависимости от вашего варианта использования Step Functions может вызывать сервисы AWS, такие как Lambda, для выполнения задач. Вы можете создавать рабочие процессы для обработки и публикации моделей машинного обучения. Вы можете использовать Step Functions для управления сервисами AWS, такими как AWS Glue, для создания рабочих процессов извлечения, преобразования и загрузки (ETL). Вы также можете создавать длительные автоматизированные рабочие процессы для приложений, требующих взаимодействия с человеком.
Или простыми словами – сервис для управления вашими процессами.
Request a response (default) — вызывает сервис и позволяет Step Functions перейти к следующему состоянию после получения ответа HTTP.
Run a job (.sync) — вызывает сервис и дожидается завершения задания.
Wait for a callback with a task token (.waitForTaskToken) — вызывает сервис с токеном задачи и дожидается возврата токена задачи с помощью обратного вызова.
Service | Request Response | Run a Job (.sync) | Wait for Callback (.waitForTaskToken) |
---|---|---|---|
Lambda | ? | ? | |
AWS Batch | ? | ? | |
DynamoDB | ? | ||
Amazon ECS/AWS Fargate | ? | ? | ? |
Amazon SNS | ? | ? | |
Amazon SQS | ? | ? | |
AWS Glue | ? | ? | |
SageMaker | ? | ? | |
Amazon EMR | ? | ? | |
CodeBuild | ? | ? | |
AWS Step Functions | ? | ? | ? |
Service | Request Response | Run a Job (.sync) | Wait for Callback (.waitForTaskToken) |
---|---|---|---|
Lambda | ? | ||
AWS Batch | ? | ||
DynamoDB | ? | ||
Amazon ECS/AWS Fargate | ? | ||
Amazon SNS | ? | ||
Amazon SQS | ? | ||
AWS Glue | ? | ||
SageMaker | ? | ||
Amazon EMR | ? | ||
CodeBuild | ? | ||
Step Functions | ? | ? |
Хватит с тебя теории, пошли к примеру.
Для того чтобы получить хоть какое-то представление как выглядит сервис — рассмотрим Hello world-пример.
{
"Comment": "A Hello World example of the Amazon States Language using Pass states",
"StartAt": "Hello",
"States": {
"Hello": {
"Type": "Pass",
"Result": "Hello",
"Next": "World"
},
"World": {
"Type": "Pass",
"Result": "World",
"End": true
}
}
}
Нажимаем Start execution. Insert можно не передавать. Должны увидеть вот такую диаграмму:
Мои поздравления, вы создали простейшую Step Functions.
Если эта тема будет интересна, в следующей части создатим Step Functions с интеграцией AWS Lambda + SQS + SNS, как показано на диаграмме:
К сожалению, не доступен сервер mySQL