Step Functions Flashcards

1
Q

Каковы сущности Step Functions?

A

State Machines, Workflows, States, Tasks, Activities, Transitions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Запускать Step Function можно через … при запуске можно … в формате …

A

через SDK, API Gateway, Event

запуская Step Function, ей можно передать параметры в формате ключ-значение

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

На какие группы делятся задачи в Step Functions?
Примеры

A

Task State может

  • вызывать AWS сервис
    • вызвать Lambda Function
    • вставить запись в DynamoDB
    • запустить ECS task и дождаться окончания его выполнения
    • опубликовать SNS сообщение
  • запускать “activity”
    • запускать EC2, ECS, on-premises
    • activity будет poll’ить (спрашивать) Step Function, чтобы найти себе работу
    • activity пришлёт результат своей работы в Step Function
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Step Functions объявляются через ….

Формат этого … называется ….

A

JSON
JSON’а
Amazon State Language (ASL)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  • Choice State - …
  • Fail or Succeed State - …
  • Pass State - …
  • Wait State - …
  • Map State - …
  • ❗️Parallel State - …
  • Task State - …
A
  • Choice State - проверка условия перед разветвлением (можно указать default branch)
  • Fail or Succeed State - остановить выполнение с ошибкой (или с успехом)
  • Pass State - передать input в output или передать фиксированное значение (без обработки)
  • Wait State - delay на сколько-то секунд или до какой-то даты
  • Map State - динамически итерировать шаги
  • ❗️Parallel State - параллельно выполнять несколько ветвей
  • Task State - действие, сам блок
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

IAM Role свойственна для ресурсов …

A

EC2 instance, Lambda Function, ECS Task, State Machine

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Какие способы обработать ошибку есть в Step Function?
Почему НЕ отлавливать ошибку прямо в коде Лямбда функции?

A
  • Retry - попробовать снова
  • Catch - проследовать в “failure path”

ℹ️ Эти техники нужно использовать именно в Step Function алгоритме,
а НЕ в коде приложения (Лямбда функции).

  • упрощается код приложения (Лямбда функции)
  • в истории выполнения Step Function будут зафиксированы все Retry и все Catch
  • при необходимости множества долгих Retry’ев, код Лямбда функции НЕ превысит 15-ти минут
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Predefined Error Codes
- States.ALL
- States.Timeout
- States.TaskFailed
- States.Permissions
Какие значения у каждого из них?

A
  • States.ALL - подходит любому Error’у (дефолтная ветка обработки в Retry и Catch)
  • States.Timeout - превышен лимит времени на выполнение
    или Активность перестала отвечать своим heartbeat’ом
  • States.TaskFailed - например, exception во время выполнения Lambda функции
  • States.Permissions - не хватает прав на выполнение операции
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Декларация Retry читается … и состоит из …, каждая из которых имеет
- ErrorEquals - …
- IntervalSeconds - …
- BackoffRate - …
- MaxAttempts - …

Когда все попытки исчерпаны, код …

A

сверху вниз
из массива ловушек

  • ErrorEquals
  • IntervalSeconds - delay перед retry’ем
  • BackoffRate - коэффициент, на который умножается delay после каждой неудачной попытки
  • MaxAttempts

переходит в секцию Catch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Декларация Catch читается … и состоит из …, каждая из которых имеет

  • ErrorEquals
  • Next - …
  • ResultPath - …
A

сверху вниз
из массива ловушек

  • ErrorEquals
  • Next - имя FallBack’а (или имя Task’а), в который нужно перейти
  • ResultPath - путь к полю, значение которого отправится на вход Next блока
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что значит поле ResultPath

A

В поле ResultPath указываем путь к полю, значение которого перейдёт из Output’а в Input следующего блока.

Use case: include the “error” object in the input

How well did you know this?
1
Not at all
2
3
4
5
Perfectly