Cloud & IT Cert Prep · Lektion

Step Functions: Orkestrera serverlösa arbetsflöden

Definiera arbetsflöden i flera steg som tillståndsmaskiner i Step Functions, hantera fel med catch- och retry-block och integrera inbyggda SDK-integrationer.

Lektion 2 av 413 steg

Step Functions: Orkestrera serverlösa arbetsflöden är en gratis lektion i Cloud & IT Cert Prep på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cloud & IT Cert Prep, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cloud & IT Cert Prep innehåller totalt 4 lektioner.

Vad är AWS Step Functions

AWS Step Functions är en fullständigt hanterad tjänst för arbetsflödesorkestrering som samordnar distribuerade applikationer som en serie steg definierade i en tillståndsmaskin. Varje steg i tillståndsmaskinen är ett tillstånd — ett Lambda-anrop, ett AWS SDK-anrop, en väntetid, en parallell gren eller ett val (if/else). Step Functions hanterar tillstånd, hanterar nya försök och tillhandahåller en visuell körningshistorik, så att ni slipper skriva orkestreringslogik i applikationskoden.

Amazon States Language (ASL)

Tillståndsmaskiner definieras i Amazon States Language (ASL), ett JSON-baserat språk. Varje tillstånd har en Type (Task, Choice, Wait, Parallel, Map, Pass, Succeed, Fail) och övergår till nästa tillstånd med Next eller avslutas. Fältet Resource i ett Task-tillstånd anger vilken AWS-tjänst som ska anropas — en ARN för Lambda eller en optimerad ARN för tjänsteintegrationer för fler än 200 AWS-tjänster utan en mellanliggande Lambda.

{
  'Comment': 'Order processing workflow',
  'StartAt': 'ValidateOrder',
  'States': {
    'ValidateOrder': {
      'Type': 'Task',
      'Resource': 'arn:aws:lambda:us-east-1:123456789012:function:ValidateOrder',
      'Next': 'ChargePayment',
      'Retry': [{'ErrorEquals': ['Lambda.ServiceException'], 'IntervalSeconds': 2, 'MaxAttempts': 3}]
    },
    'ChargePayment': {
      'Type': 'Task',
      'Resource': 'arn:aws:states:::dynamodb:putItem',
      'Parameters': {'TableName': 'Orders', 'Item': {'orderId': {'S.$': '$.orderId'}}},
      'End': true
    }
  }
}

Standardarbetsflöden jämfört med Express-arbetsflöden

Step Functions har två typer av arbetsflöden. Standard Workflows: beständiga, kan köras i upp till 1 år, har exakt-en-gång-semantik och lagrar fullständig körningshistorik i 90 dagar — lämpliga för långvariga affärsprocesser. Express Workflows: hög genomströmning (över 100 000 körningar per sekund), kan köras i upp till 5 minuter, har minst-en-gång-semantik och skickar loggar till CloudWatch — lämpliga för händelsebearbetning i realtid och IoT-datapipelines. Välj utifrån krav på varaktighet, genomströmning och idempotens.

# Create a Standard workflow state machine
aws stepfunctions create-state-machine \
  --name OrderProcessing \
  --definition file://order-state-machine.json \
  --role-arn arn:aws:iam::123456789012:role/StepFunctionsRole \
  --type STANDARD

# Create an Express workflow for high-throughput
aws stepfunctions create-state-machine \
  --name ClickstreamProcess \
  --definition file://click-state-machine.json \
  --role-arn arn:aws:iam::123456789012:role/StepFunctionsRole \
  --type EXPRESS

Task-tillstånd och tjänsteintegrationer

Task-tillstånd i Step Functions stöder två integrationsmönster. Request-Response: anropa en AWS-tjänst och fortsätt omedelbart (fire-and-forget). Sync Integration: anropa en tjänst och vänta tills den är klar innan ni går vidare till nästa tillstånd (t.ex. vänta på att en ECS-uppgift ska slutföras, ett Glue-jobb ska bli klart eller ett SageMaker-träningsjobb ska avslutas). Synkron integration använder suffixet :sync:2 i resursens ARN och eliminerar behovet av avfrågningslogik.

# Sync integration: start Glue job and wait for completion
'RunGlueETL': {
  'Type': 'Task',
  'Resource': 'arn:aws:states:::glue:startJobRun.sync:2',
  'Parameters': {
    'JobName': 'clean-sales'
  },
  'Next': 'RunAthenaQuery'
}

Choice-tillstånd för förgreningslogik

Ett Choice-tillstånd implementerar villkorsstyrd förgrening — arbetsflödesmotsvarigheten till en if/else- eller switch-sats. Ni definierar Choices som en array med villkor; det första villkoret som matchar avgör nästa tillstånd. Ett Default-tillstånd hanterar fall som inte matchar något villkor. Choice-tillstånd gör det möjligt att dirigera en order till olika leveransflöden baserat på produkttyp, kundnivå eller betalningsstatus, utan att skriva villkorslogik i Lambda.

'RouteByOrderType': {
  'Type': 'Choice',
  'Choices': [
    {
      'Variable': '$.orderType',
      'StringEquals': 'DIGITAL',
      'Next': 'FulfillDigital'
    },
    {
      'Variable': '$.orderType',
      'StringEquals': 'PHYSICAL',
      'Next': 'FulfillPhysical'
    }
  ],
  'Default': 'HandleUnknownType'
}

Parallel- och Map-tillstånd

Ett Parallel-tillstånd kör flera grenar samtidigt och väntar på att alla ska slutföras innan arbetsflödet fortsätter — användbart för samtidiga uppgifter som att köra en kreditkontroll och en lagerkontroll samtidigt. Ett Map-tillstånd itererar över en array i indata och tillämpar samma uppsättning tillstånd på varje element parallellt — användbart för att bearbeta en batch med objekt som returnerats av ett tidigare steg, till exempel för att ändra storlek på flera uppladdade bilder.

'ProcessImages': {
  'Type': 'Map',
  'ItemsPath': '$.imageKeys',
  'MaxConcurrency': 10,
  'Iterator': {
    'StartAt': 'ResizeImage',
    'States': {
      'ResizeImage': {
        'Type': 'Task',
        'Resource': 'arn:aws:lambda:us-east-1:123:function:ResizeImage',
        'End': true
      }
    }
  },
  'Next': 'NotifyComplete'
}

Felhantering: Catch och Retry

Varje Task-tillstånd i Step Functions kan ha blocken Retry och Catch för robust felhantering. Retry anger vilka feltyper som ska utlösa automatiska nya försök, med konfigurerbara IntervalSeconds, MaxAttempts och BackoffRate (multiplikator för exponentiell backoff). Catch anger reservtillstånd för fel som inte kan återställas. Denna deklarativa felhantering eliminerar behovet av upprepade try/catch-block i Lambda-funktioner.

'ChargeCard': {
  'Type': 'Task',
  'Resource': 'arn:aws:lambda:us-east-1:123:function:ChargeCard',
  'Retry': [{
    'ErrorEquals': ['Lambda.ServiceException', 'States.TaskFailed'],
    'IntervalSeconds': 2,
    'MaxAttempts': 3,
    'BackoffRate': 2.0
  }],
  'Catch': [{
    'ErrorEquals': ['PaymentDeclined'],
    'Next': 'NotifyPaymentFailed',
    'ResultPath': '$.error'
  }],
  'Next': 'FulfillOrder'
}

Wait-tillstånd och callbacks

Ett Wait-tillstånd pausar körningen av arbetsflödet under en fast tidsperiod eller tills en specifik tidsstämpel infaller. Ett Callback-mönster (med .waitForTaskToken) pausar körningen tills ett externt system anropar SendTaskSuccess eller SendTaskFailure med token. Så modellerar Step Functions steg som kräver mänskligt godkännande: skicka ett e-postmeddelande med task token, så återupptas arbetsflödet när en person klickar på en länk för att godkänna eller avslå i sitt e-postprogram.

# Callback pattern: wait for human approval
'RequestApproval': {
  'Type': 'Task',
  'Resource': 'arn:aws:states:::sqs:sendMessage.waitForTaskToken',
  'Parameters': {
    'QueueUrl': 'https://sqs.us-east-1.amazonaws.com/123/approvals',
    'MessageBody': {
      'taskToken.$': '$$.Task.Token',
      'orderId.$': '$.orderId'
    }
  },
  'Next': 'ProcessApproval'
}

Integration mellan Step Functions och EventBridge

Körningar i Step Functions kan startas av EventBridge-regler, vilket gör det enkelt att utlösa arbetsflöden som svar på händelser från AWS-tjänster. Exempelvis utlöser en S3-ObjectCreated-händelse en EventBridge-regel som startar ett bildbearbetningsarbetsflöde i Step Functions. Step Functions kan också publicera egna händelser till EventBridge när körningar lyckas eller misslyckas, vilket möjliggör övervakning och aviseringar nedströms utan att Step Functions API behöver avfrågas.

Övervaka körningar i Step Functions

Step Functions-konsolen innehåller ett visuellt diagram över arbetsflödets körning som visar vilket tillstånd som lyckades, vilket som körs och vilket som misslyckades — färgkodat i realtid. Varje körning lagrar hela sin indata- och utdatahistorik för Standard Workflows (90 dagars lagring). För Express Workflows skickas loggar till CloudWatch Logs. Använd X-Ray tracing för att spåra svarstid från början till slut genom Lambda-funktioner och andra tjänster som anropas i arbetsflödet.

# List recent executions and check status
aws stepfunctions list-executions \
  --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:OrderProcessing \
  --status-filter FAILED

# Describe a specific failed execution for debugging
aws stepfunctions describe-execution \
  --execution-arn arn:aws:states:us-east-1:123456789012:execution:OrderProcessing:exec-001

Step Functions jämfört med SQS och EventBridge

Att veta när Step Functions ska användas i stället för SQS eller EventBridge är en vanlig beslutspunkt på provet. Använd Step Functions när ni behöver synlig, tillståndsbaserad orkestrering av en process i flera steg, med felhantering och förgreningar. Använd SQS för tillförlitlig asynkron punkt-till-punkt-meddelandehantering mellan två tjänster, med nya försök via synlighetstimeout. Använd EventBridge för händelsedirigering till flera prenumeranter baserat på innehållsmönster. Ett Step Functions-arbetsflöde kan integrera alla tre: vänta på ett SQS-meddelande via en task token, publicera slutförandet till EventBridge och kedja samman Lambda- och SDK-anrop.

Snabbtest

Testa Er förståelse av AWS Solutions Architect-koncepten (SAA-C03) från den här lektionen.

Lektionssammanfattning

I den här lektionen har Ni lärt Er att: Step Functions orkestrerar arbetsflöden som tillståndsmaskiner med tillstånden Task, Choice, Parallel, Map, Wait och Catch, Standard Workflows stöder upp till ett år med fullständig körningshistorik, medan Express Workflows hanterar arbetsbelastningar med hög genomströmning och en varaktighet på under fem minuter, samt att Callback-mönstret med aktivitetstokens möjliggör godkännandesteg där en människa ingår i processen. Härnäst utforskar vi Kinesis Data Streams för realtidsbearbetning av händelser med hög genomströmning.

Gratis att börja

Lär dig Cloud & IT Cert Prep med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
150
Lektioner
600

Vanliga frågor

Är lektionen ”Step Functions: Orkestrera serverlösa arbetsflöden” gratis?

Ja – hela texten till ”Step Functions: Orkestrera serverlösa arbetsflöden” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cloud & IT Cert Prep, kan Ni uppgradera till CoddyKit PRO. Kursen i Cloud & IT Cert Prep innehåller totalt 4 lektioner.

Vad lär jag mig i ”Step Functions: Orkestrera serverlösa arbetsflöden”?

Definiera arbetsflöden i flera steg som tillståndsmaskiner i Step Functions, hantera fel med catch- och retry-block och integrera inbyggda SDK-integrationer. Ni övar på Cloud & IT Cert Prep med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Cloud & IT Cert Prep?

Du behöver inga förkunskaper. Utbildningen i Cloud & IT Cert Prep på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Step Functions: Orkestrera serverlösa arbetsflöden”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Cloud & IT Cert Prep-lektionen?

Ja. Varje Cloud & IT Cert Prep-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. EventBridge: Händelsebuss och regler
  2. Step Functions: Orkestrera serverlösa arbetsflöden
  3. Kinesis Data Streams för bearbetning av händelser i realtid
  4. Mönster för koreografi och orkestrering
← Tillbaka till Cloud & IT Cert Prep