AWS Step Functions
Serverless Cloud Practitioner Solutions Architect Associate

AWS Step Functions

AWS Step Functions

Serverless orkiestracja workflows w chmurze AWS. Koordynuj Lambda, ECS, SNS, SQS i inne serwisy w wizualnych maszynach stanowych - z wbudowana obsluga bledow i retries.

AWS Step Functions to serverless serwis do orkiestracji workflows, ktory pozwala koordynowac wiele serwisow AWS w wizualnych maszynach stanowych (state machines). Zamiast pisac skomplikowany kod laczacy Lambda, ECS, SQS i inne serwisy, definiujesz workflow w Amazon States Language (ASL) - a Step Functions zajmuje sie wykonaniem, obsluga bledow i retries.

Kazdy workflow to maszyna stanowa z przejsciami miedzy stanami. Masz do dyspozycji stany Task (wywolanie serwisu), Choice (logika warunkowa), Parallel (rownolegle galęzie), Wait (opoznienie), Map (iteracja po kolekcji) i inne. Wszystko z wizualnym designerem w konsoli AWS i pelnym logowaniem w CloudWatch.

Czy wiesz, ze...

Step Functions obsluguje ponad 220 bezposrednich integracji z serwisami AWS (SDK integrations). Zamiast pisac Lambda, ktora wywoluje DynamoDB, mozesz wstawic Task State z bezposrednim wywolaniem PutItem - bez kodu posredniego!

Pro Tip

Uzywaj Express Workflow do szybkich, masowych operacji (np. przetwarzanie eventow z SQS), a Standard Workflow do dlugotrwalych procesow biznesowych. Express jest nawet 10x tanszy, ale nie gwarantuje exactly-once i nie przechowuje pelnej historii.

Uwaga

Standard Workflows kosztuja per state transition - workflow z 10 krokami wywolywany 1M razy = 10M transitions = $250/mies. Dla wysokiego wolumenu krotkich zadan Express jest nawet 10x tanszy. Ale Express nie gwarantuje exactly-once - jesli potrzebujesz idempotentnosci, musisz ja zaimplementowac sam.

AWS Step Functions to serwis orkiestracji, ktory pozwala koordynowac wiele serwisow AWS w wizualne workflow. Definiujesz maszyne stanow w Amazon States Language (ASL) - JSON opisujacy stany, przejscia, logike warunkowa i obsluge bledow. Step Functions automatycznie wykonuje kazdy krok, sledzi stan i obsluguje retry.

1

Definiowanie maszyny stanow (ASL)

Amazon States Language to JSON definiujacy workflow. Kazdy stan ma typ, dane wejsciowe, dane wyjsciowe i przejscie do nastepnego stanu. Workflow Studio w konsoli AWS pozwala wizualnie budowac workflow drag-and-drop i generuje ASL automatycznie. Mozesz tez pisac ASL recznie lub generowac go z CDK/SAM. Maksymalny rozmiar definicji to 1 MB.

2

Typy stanow - Task, Choice, Parallel, Map

Task - wywoluje serwis AWS (Lambda, ECS, SNS, SQS, DynamoDB i 200+ innych). Choice - logika warunkowa (if/else na podstawie danych). Parallel - uruchamia wiele galezi jednoczesnie i czeka na wszystkie. Map - iteruje po tablicy i przetwarza kazdy element rownolegle (Distributed Map obsluguje miliony elementow). Wait - czeka okreslony czas. Pass - transformuje dane. Succeed/Fail - konczy workflow.

3

Konfiguracja obslugi bledow (Retry/Catch)

Kazdy Task state moze miec Retry (ponawianie) i Catch (przechwytywanie bledow). Retry definiuje: jakie bledy powtarzac, ile razy (MaxAttempts), interwal miedzy probami (IntervalSeconds) i backoff multiplier (BackoffRate). Catch przekierowuje na inny stan gdy retry sie wyczerpia. Mozesz lapac konkretne bledy (States.TaskFailed, Lambda.ServiceException) lub wszystkie (States.ALL).

4

Uruchamianie wykonania (Execution)

Execution to pojedyncze uruchomienie workflow z konkretnymi danymi wejsciowymi (JSON do 256 KB). Mozesz uruchomic przez SDK, CLI, EventBridge rule, API Gateway, inne Step Functions (nested) lub z konsoli AWS. Standard Workflow obsluguje do 25,000 stanow per execution. Express Workflow obsluguje do 5 minut, ale z nieograniczona liczba jednoczesnych executionow.

5

Monitorowanie wykonania

Konsola Step Functions wizualizuje przebieg workflow w czasie rzeczywistym - widzisz ktory stan jest aktywny, dane wejsciowe/wyjsciowe kazdego kroku i bledy. Execution History zapisuje kazde zdarzenie (do 25,000 per execution). CloudWatch metryki: ExecutionTime, ExecutionsFailed, ExecutionsStarted. X-Ray integration pokazuje trace miedzy serwisami. Logi moga trafiac do CloudWatch Logs.

6

Callbacki i tokeny zadania

Pattern .waitForTaskToken pozwala stanowi Task czekac na zewnetrzne zdarzenie. Step Functions generuje unikalny token, ktory przekazujesz do zewnetrznego systemu (np. przez SQS). System wywoluje SendTaskSuccess lub SendTaskFailure z tokenem gdy zakonczy prace. To idealny wzorzec dla: zatwierdzania przez czlowieka, dlugich procesow batch, integracji z systemami on-premises. Timeout gwarantuje, ze workflow nie czeka w nieskonczonosc.

Step Functions upraszczaja koordynacje zlozonych procesow, ale wymagaja zrozumienia modelu cenowego i ograniczen. Ponizej kluczowe wskazowki z produkcyjnych wdrozen.

Express vs Standard - model cenowy i limity

Standard: 0.025 USD za 1000 przejsc stanow. Workflow na 10 stanow kosztuje 0.00025 USD per execution. Przy 1M executions/miesiac to 250 USD. Express: 1.00 USD za milion executions + 0.00001667 USD za GB-s pamieci. Znacznie tanszy dla krotkich, czesto uruchamianych workflow (np. API request processing). Express nie zapisuje historii - logi do CloudWatch. Standard dla dlugich procesow (do roku), Express dla krotkich (do 5 minut).

Poczatkujacy

Map state - rownolegle przetwarzanie w skali

Inline Map przetwarza do 40 elementow rownolegle. Distributed Map (od 2022) obsluguje miliony elementow - czyta dane z S3 (CSV, JSON, linia po linii) i uruchamia child executionow dla kazdego batchu. MaxConcurrency kontroluje rownoleglosc (domyslnie nieograniczona - uwazaj na limity Lambda!). Distributed Map to idealne narzedzie do ETL, przetwarzania plikow i batch jobow.

Zaawansowany

Direct SDK integration zamiast Lambda wrapper

Step Functions moga bezposrednio wywolywac ponad 200 serwisow AWS (DynamoDB PutItem, SQS SendMessage, SNS Publish, ECS RunTask) bez Lambda posrednika. Usuwasz cold start, zmniejszasz latency i oszczedzasz na invocations. W ASL uzywasz formatu "Resource": "arn:aws:states:::aws-sdk:serviceName:apiAction". To nie dziala dla wlasnej logiki biznesowej - tam Lambda jest niezbedna.

Zaawansowany

Error handling z Retry i Catch - nie polegaj na domyslach

Zawsze definiuj Retry z BackoffRate 2.0 i MaxAttempts 3-5 dla Task stanow. Lapaj States.TaskFailed dla bledow Lambda i States.ALL jako fallback. Catch powinien kierowac do stanu logujacego blad (np. zapis do DynamoDB lub SNS notyfikacja). Bez Retry jeden timeout Lambda zrywa caly workflow. Rozdzielaj transient errors (retry) od permanent errors (catch i kompensacja).

Poczatkujacy

Activity Tasks - integracja z zewnetrznymi workerami

Activity Task pozwala zewnetrznemu procesowi (EC2, on-premises, kontener) pollowac Step Functions o prace. Worker wywoluje GetActivityTask, otrzymuje dane, przetwarza je i odsyla wynik przez SendTaskSuccess. To bridge miedzy serverless workflow a tradycyjna infrastruktura. Heartbeat timeout zapobiega wiszacym zadaniom - worker musi regularnie wysylac SendTaskHeartbeat.

Zaawansowany

Execution History - limit 25,000 zdarzen

Standard Workflow zapisuje do 25,000 zdarzen w historii execution. Kazde przejscie, kazdy input/output to zdarzenie. Dlugi workflow z duzym Map state moze ten limit przekroczyc - execution zostanie przerwane. Rozwiazanie: uzywaj Distributed Map (child executionow z wlasna historia), dziel duze workflow na nested Step Functions (StartExecution z pattern .sync) lub uzywaj Express dla wewnetrznych sub-workflow.

Zaawansowany

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS Step Functions bezposrednio w konsoli AWS.

Do czego sluzy AWS Step Functions?

01

Orkiestracja mikroserwisow

Koordynuj wywolania wielu funkcji Lambda i serwisow AWS w okreslonym porzadku. Np. przetwarzanie zamowienia: walidacja, platnosc, wysylka, powiadomienie.

02

Przetwarzanie danych ETL

Buduj pipeline ETL: pobierz dane z S3, przetworz w Lambda, zaladuj do DynamoDB, wyslij raport. Z automatycznymi retries i obsluga bledow.

03

Human approval workflows

Workflow, ktory czeka na akceptacje czlowieka (np. zatwierdzenie wydatku). Step Functions moze czekac do roku na callback z zewnetrznego systemu.

04

Rownolegle przetwarzanie z Map

Uzyj stanu Map do rownoleglego przetwarzania tysiecy elementow - np. generowanie miniaturek zdjec, przetwarzanie plikow CSV, batch processing.

Co musisz wiedziec?

State Machine

Workflow zdefiniowany jako maszyna stanowa w formacie JSON (ASL). Sklada sie ze stanow polaczonych przejsciami. Kazde wykonanie (execution) przechodzi przez stany od Start do End.

Amazon States Language (ASL)

Jezyk JSON do definiowania maszyn stanowych. Opisuje stany, przejscia, obsluge bledow, retries i timeouty. Mozesz pisac recznie lub uzyc wizualnego designera.

Standard vs Express Workflow

Standard: do dlugotrwalych procesow (do 1 roku), exactly-once, pelna historia. Express: do szybkich, masowych procesow (do 5 min), at-least-once, tanszy.

Task State

Stan wykonujacy prace - wywoluje Lambda, ECS, SNS, SQS, DynamoDB, Glue i wiele innych serwisow AWS. Obsluguje bezposrednie integracje SDK bez potrzeby pisania kodu Lambda.

Choice State

Stan logiki warunkowej - odpowiednik if/else w kodzie. Kieruje workflow do roznych galezi na podstawie danych wejsciowych (np. kwota > 1000 -> galaz zatwierdzania).

Error Handling (Catch/Retry)

Wbudowana obsluga bledow. Retry automatycznie powtarza stan z exponential backoff. Catch przechwytuje bledy i kieruje do stanu obslugi (np. powiadomienie o bledzie).

Architektura orkiestracji workflow z Step Functions

Step Functions koordynuje zlozony proces biznesowy, wywolujac Lambda, zapisujac do DynamoDB i wysylajac notyfikacje. Parallel state przetwarza niezalezne galezi jednoczesnie.

EventBridge Trigger
EventBridge Trigger Reguła EventBridge uruchamia workflow na podstawie zdarzenia (np. nowe zamowienie)
Invoke / SDK Call
Step Functions
Step Functions Maszyna stanow orkiestrujaca caly proces - Task, Choice, Parallel, Map z retry i catch
AWS Lambda
AWS Lambda Logika biznesowa - walidacja, transformacja, obliczenia uruchamiane jako Task states
DynamoDB
DynamoDB Zapis wynikow przetwarzania - direct SDK integration bez Lambda posrednika
SNS Notification
SNS Notification Powiadomienie o zakonczeniu procesu lub bledzie - email, SMS, webhook
Direct SDK integration (Step Functions -> DynamoDB/SQS) eliminuje Lambda posrednika i cold start
Distributed Map przetwarza miliony elementow rownolegle - idealny do ETL i batch processingu
Standard Workflow dla procesow do 1 roku, Express dla krotkich (do 5 min) i tanszych workloadow

Porownanie Standard vs Express Workflows

Typ Max czas trwania Semantyka Koszt Historia wykonan Najlepszy dla Max wykonan/s
Standard 1 rok Exactly-once $0.025 / 1000 state transitions 90 dni w konsoli Dlugie procesy, human approval, saga pattern 2,000
Express 5 minut At-least-once (async), At-most-once (sync) $0.00001667/GB-s + $0.000001/request Tylko CloudWatch Logs Wysokowolumenowe ETL, IoT, streaming 100,000+

Ile kosztuje AWS Step Functions?

Standard Workflow

Oplata za kazde przejscie stanowe (state transition) w workflow.

$0.025 za 1000 przejsc stanowych (4000 za darmo/mies.)

Express Workflow

Oplata za liczbe wykonan, czas trwania i zuzycie pamieci.

$1.00 za milion wykonan + $0.00001667/GB-s

Free Tier

Standard Workflow: 4000 przejsc stanowych miesiecznie za darmo, trwale (nie tylko 12 miesiecy).

4000 state transitions/mies. za darmo na zawsze!

Przyklady AWS CLI

Utworz state machine

Tworzy nowa maszyne stanowa z definicja ASL

aws stepfunctions create-state-machine \
 --name MojWorkflow \
 --role-arn arn:aws:iam::123456789012:role/StepFunctionsRole \
 --definition '{"Comment":"Prosty workflow","StartAt":"PobierzDane","States":{"PobierzDane":{"Type":"Task","Resource":"arn:aws:lambda:eu-central-1:123456789012:function:PobierzDane","Next":"PrzetworzDane","Retry":[{"ErrorEquals":["States.ALL"],"MaxAttempts":3}]},"PrzetworzDane":{"Type":"Task","Resource":"arn:aws:lambda:eu-central-1:123456789012:function:PrzetworzDane","End":true}}}'

Uruchom execution

Uruchamia nowe wykonanie maszyny stanowej z danymi wejsciowymi

aws stepfunctions start-execution \
 --state-machine-arn arn:aws:states:eu-central-1:123456789012:stateMachine:MojWorkflow \
 --input '{"orderId":"ORD-12345","customer":"[email protected]"}'

Sprawdz status execution

Pobiera status i wynik wykonania workflow

aws stepfunctions describe-execution \
 --execution-arn arn:aws:states:eu-central-1:123456789012:execution:MojWorkflow:exec-123 \
 --query "{Status:status,Start:startDate,Stop:stopDate,Output:output}"

Lista wykonan

Wyswietla liste ostatnich wykonan maszyny stanowej

aws stepfunctions list-executions \
 --state-machine-arn arn:aws:states:eu-central-1:123456789012:stateMachine:MojWorkflow \
 --status-filter FAILED \
 --max-results 10

Quiz: AWS Step Functions

Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.

Twoj wynik: 0 / 4

1. Jaka jest maksymalna dlugosc trwania Standard Workflow w Step Functions?

2. Czym rozni sie Standard Workflow od Express Workflow?

3. Jaki stan Step Functions pozwala na rownolegla obsluge wielu elementow z kolekcji?

4. Jak Step Functions obsluguje bledy w Task State?

Chcesz poznac AWS Step Functions w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac AWS Step Functions krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy