AWS Lambda durable functions

21. tammikuuta 2026

AWS julkaisi joulukuussa 2025 Lambdaan uuden ominaisuuden nimeltä Lambda durable functions. Se tuo Lambdaan pitkäkestoisen ja monivaiheisen suoritusmallin, jossa työ voidaan pilkkoa hallittaviin osiin ja suorittaa jopa vuoden ajan. Tämä on merkittävä muutos, koska Lambda on perinteisesti ollut parhaimmillaan lyhyissä, nopeasti loppuun asti ajettavissa tehtävissä. Durable functions laajentaa Lambdan käyttötapauksia kohti pidempiä työnkulkuja, integraatioprosesseja ja monivaiheisia automaatioita.


Monessa järjestelmässä Lambda ei yleensä ole vain “yksi kutsu ja vastaus”-tyypinen funktio. Usein joudutaan rakentamaan logiikkaketju, jossa ensin haetaan dataa, validoidaan tilaa, kutsutaan ulkoisia palveluja, tehdään muutoksia, odotetaan jonkin muun prosessin valmistumista ja jatketaan vasta myöhemmin. Tällaisissa toteutuksissa on perinteisesti ollut kaksi tyypillistä ratkaisua: joko rakennetaan oma tilanhallinta käsin (esimerkiksi DynamoDB:n ja retry-logiikan avulla), tai otetaan käyttöön AWS Step Functions. Durable Functions tarjoaa tähän väliin luontevan vaihtoehdon: se mahdollistaa monivaiheisen logiikan toteuttamisen suoraan Lambda-funktiossa ilman erillistä orkestrointikerrosta.


Durable functions perustuu mekanismiin, jossa suoritus jaetaan useisiin työvaiheisiin (step). Kun työvaihe valmistuu, sen tulos tallennetaan checkpoint-tyyppisesti talteen. Jos suoritus keskeytyy tai myöhemmässä työvaiheessa tapahtuu virhe, funktio voidaan käynnistää uudelleen “replay”-mallilla. Tällöin aiempia onnistuneita työvaiheita ei ajeta uudelleen, vaan palautetaan aiemmin tallennettu tulos ja suoritus jatkuu kohdasta ennen virhettä. Käytännössä tämä vähentää turhaa uudelleen ajoa ja tekee suorituksesta kustannustehokkaampaa erityisesti silloin, kun alun työvaiheet ovat hitaita tai sisältävät kalliita integraatiokutsuja.


Durable functions tuo mukanaan myös hyödyllisiä operaatioita kuten wait() ja WaitForCallback(). Näiden avulla suoritus voidaan jättää odottamaan ja jatkaa myöhemmin ilman, että Lambda jää roikkumaan ja laskuttamaan koko odotuksen ajan. Tämä on tärkeä parannus moniin käytännön skenaarioihin: välillä työnkulku joutuu odottamaan hyväksyntää, ulkoisia järjestelmiä tai jonossa etenevää prosessia. Aiemmin tällainen logiikka on usein vaatinut erillistä orkestrointia, mutta Durable Functions tuo odottamisen osaksi koodia.


Vaikka Durable Functions tekee monivaiheisen logiikan toteutuksesta helpompaa, koodia kirjoittaessa täytyy huomioida pari tärkeää asiaa: ulospäin vaikuttavat toimenpiteet ja tilanhallinta. Ulospäin vaikuttavia toimenpiteitä ovat esimerkiksi API-kutsut ja muut operaatiot, joilla on vaikutusta muihin järjestelmiin. Näitä ei kannata tehdä työvaiheiden ulkopuolella, koska replay-tilanteessa nämä koodit ajetaan uudelleen ja ulkopuolinen operaatio voi suoriutua toistamiseen, pahimmillaan seurauksena on kaksoisoperaatioita tai muuta epätoivottua käyttäytymistä. Tilanhallinnan osalta hyvä käytäntö on ottaa jokaisen työvaiheen tulos talteen muuttujaan ja viedä se eteenpäin seuraaville työvaiheille. Näin myöhempi logiikka voi hyödyntää aiemmin laskettuja arvoja turvallisesti myös replay-tilanteissa, ja koodi pysyy ennustettavana.



Checkpoint-tilan koko on vain 256 KB. Tämä on hyvä pitää mielessä, kun rakennetaan työvaiheita. Työvaiheiden tulokset kannattaa pitää kohtuullisen kokoisina. Jos työvaihe tuottaa ison datamassan, on usein parempi tallentaa se esimerkiksi S3:een ja välittää seuraaville työvaiheille vain viite, kuten objektin avain. Tällöin checkpointit pysyvät kevyenä ja työvaiheet keskittyvät tekemään yhden selkeän asian kerrallaan.


Kokonaisuutena AWS Lambda Durable Functions avaa kiinnostavan uuden tavan rakentaa workflow-tyyppistä logiikkaa. Se ei korvaa Step Functionsia kaikissa tilanteissa, mutta tarjoaa erinomaisen vaihtoehdon silloin, kun halutaan pitää kokonaisuus Lambda-funktion koodin sisällä ja samalla saada checkpointtien, retryjen ja wait-operaatioiden hyödyt. Lopputuloksena saadaan vähemmän turhaa työtä, parempi vikasietoisuus ja huomattavasti suoraviivaisempi toteuttamistapa moniin tuotannon automaatioihin ja monivaiheisiin prosesseihin. Tämä on erittäin hyödyllinen uusi työkalu, mitä en tiennyt tarvitsevani.

Heikka Ma

Heikki Ma

Cloud Consultant, CloudOps Lead

Viimeisimmät kirjoitukset

AWS DevOps Agent
8. joulukuuta 2025
AWS:n DevOps Agent on autonominen virtuaalinen on-call-tiimikaveri, joka tutkii häiriöt automaattisesti, kokoaa tilannekuvan useista järjestelmistä ja ehdottaa korjauksia keventäen SRE-tiimien kuormaa.
4. joulukuuta 2025
AWS tuo uudenlaista joustavuutta palveluihin yhdistämällä serverless-mallin ja perinteisen instanssihallinnan. Uudistus hämärtää rajaa Lambdan ja EC2:n välillä, kun funktiot voidaan ajaa valituilla instanssityypeillä AWS:n edelleen hoitaessa skaalauksen ja ylläpidon.
24. marraskuuta 2025
Deploying software on EC2 instances nowadays feel like going backwards in time - most of the applications would be usually preferably deployed as Docker containers or serverless functions.
18. kesäkuuta 2025
Kesäkuun alussa suuntasimme aurinkoiseen Tukholmaan AWS:n järjestämään Partner Summitiin ja sitä seuranneeseen Summit -päätapahtumaan.
Lisää kirjoituksia