Serverless-kehitys AWS Lambdalla · Oppitunti

Työnkulkujen orkestrointi AWS Step Functionsilla

Suunnittelette ja toteutatte monimutkaisia, tilallisia työnkulkuja AWS Step Functionsilla useiden Lambda-funktioiden ja muiden AWS-palveluiden koordinoimiseksi

Oppitunti 3/411 vaihetta

Työnkulkujen orkestrointi AWS Step Functionsilla on ilmainen Serverless-kehitys AWS Lambdalla-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Serverless-kehitys AWS Lambdalla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Serverless-kehitys AWS Lambdalla-kurssilla on yhteensä 4 oppituntia.

Työnkulkujen orkestroinnin tarve

Kuvitelkaa rakentavanne monimutkaista sovellusta, kuten verkkokaupan tilausten toimitusjärjestelmää. Se sisältää useita vaiheita:

  • Maksun käsittely
  • Varaston päivittäminen
  • Toimituksesta ilmoittaminen
  • Vahvistussähköpostien lähettäminen

Kukin vaihe voi olla eri palvelun, kuten Lambda-funktion, vastuulla. Miten varmistatte, että vaiheet suoritetaan oikeassa järjestyksessä, virheet käsitellään ja tietoja välitetään niiden välillä?

Mikä AWS Step Functions on?

AWS Step Functions on palvelimeton työnkulkupalvelu, jonka avulla voitte koordinoida useita AWS-palveluja liiketoiminnan kannalta kriittisiksi sovelluksiksi.

Se esittää sovelluksen komponentit visuaalisesti vaiheiden sarjana, mikä helpottaa monivaiheisten sovellusten rakentamista ja suorittamista.

Ajatelkaa sitä palvelimettoman orkesterinne kapellimestarina!

Tilakoneiden ymmärtäminen

Step Functions -palvelun ytimessä on tilakoneen käsite. Tilakone määrittää työnkulun tilojen sarjana.

Kukin tila edustaa sovelluksen vaihetta, ja Step Functions hallitsee siirtymiä näiden tilojen välillä.

Se seuraa työnkulun tilaa, yrittää epäonnistuneita vaiheita uudelleen ja varmistaa oikean suoritusjärjestyksen.

Step Functionsin tärkeimmät tilatyypit

Step Functions käyttää työnkulkujen rakentamiseen erilaisia tilatyyppejä:

  • Task-tila: Suorittaa työn kutsumalla AWS-palvelua, kuten Lambda-funktiota.
  • Choice-tila: Lisää syötetietoihin perustuvan haarautumislogiikan.
  • Wait-tila: Keskeyttää työnkulun määritetyksi ajaksi tai tiettyyn aikaleimaan asti.
  • Pass-tila: Välittää syötteensä tulosteeksi suorittamatta työtä.
  • Succeed-tila: Päättää suorituksen onnistuneesti.
  • Fail-tila: Päättää suorituksen ja merkitsee sen epäonnistuneeksi.

Task-tilat: Lambdan kutsuminen

Yleisin tapa, jolla Step Functions toimii muiden palvelujen kanssa, on Task-tila.

Task-tila voi kutsua Lambda-funktiota suoraan, välittää sille tietoja ja vastaanottaa sen tulosteen. Step Functions käsittelee kutsun ja odottaa Lambda-funktion suorittamisen valmistumista.

Näin voitte ketjuttaa palvelimettomia funktioita tehokkaiksi työnkuluiksi.

Amazon States Language (ASL)

Step Functionsin työnkulut määritetään JSON-pohjaisella rakenteella, jota kutsutaan nimellä Amazon States Language (ASL).

ASL kuvaa tilakoneen, mukaan lukien sen tilat, niiden tyypit ja niiden väliset yhteydet. Se on deklaratiivinen kieli, mikä tarkoittaa, että kuvaatte mitä haluatte tapahtuvan, ette miten se tapahtuu.

Tässä on pieni ASL-koodikatkelma "Hello World" -tehtävää varten:

{
  "Comment": "A simple Hello World workflow",
  "StartAt": "HelloWorld",
  "States": {
    "HelloWorld": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:MyHelloFunction",
      "End": true
    }
  }
}

Työnkulkujen visuaalinen rakentaminen

Vaikka ASL määrittää työnkulun, AWS tarjoaa Step Functions -konsolissa tehokkaan visuaalisen työnkulkusuunnittelijan.

Voitte vetää ja pudottaa tiloja, yhdistää niitä ja määrittää niiden ominaisuuksia kirjoittamatta ASL:ää manuaalisesti. Suunnittelija luo ASL:n automaattisesti puolestanne!

Tämä tekee monimutkaisten työnkulkujen suunnittelusta intuitiivista ja vähentää virheitä.

Esimerkki: kuvankäsittelyn työnkulku

Kuvitellaan työnkulku ladattujen kuvien käsittelyä varten:

  1. Kuvan lataaminen: S3-tapahtuma käynnistää Lambdan.
  2. Työnkulun käynnistäminen: Lambda käynnistää Step Functions -suorituksen.
  3. Kuvan koon muuttaminen (Task): Lambda-funktio muuttaa kuvan kokoa.
  4. Vesileiman lisääminen (Task): Toinen Lambda lisää vesileiman.
  5. Käsitellyn kuvan tallentaminen (Task): Lopullinen kuva tallennetaan S3:een.

Step Functions koordinoi näitä vaiheita ja välittää kuvien metatietoja niiden välillä.

Vankka virheenkäsittely

Mitä tapahtuu, jos Lambda-funktio epäonnistuu työnkulun keskellä?

Step Functions tarjoaa sisäänrakennetut mekanismit virheenkäsittelyyn ja uudelleenyrityksiin. Voitte määrittää Task-tiloille uudelleenyrityskäytännöt, joissa määritetään yrityskertojen määrä ja viive niiden välillä.

Jos tila epäonnistuu edelleen uudelleenyritysten jälkeen, voitte määrittää Catch-lohkon siirtymään vaihtoehtoiseen tilaan tai merkitsemään koko työnkulun epäonnistuneeksi, mikä varmistaa häiriönsietokyvyn.

Työnkulkujen orkestroinnin tarkistus

Olette oppineet AWS Step Functionsin tehokkuudesta monimutkaisten työnkulkujen orkestroinnissa. Tarkistetaan ymmärryksenne sen keskeisistä komponenteista.

Kertaus: työnkulkujen orkestrointi

Tässä oppitunnissa tutustuimme AWS Step Functionsiin, tehokkaaseen työkaluun monimutkaisten ja tilallisten työnkulkujen rakentamiseen ja orkestrointiin.

  • Opimme tilakoneista ja erilaisista tilatyypeistä.
  • Opimme, miten Task-tilat kutsuvat Lambdan kaltaisia palveluja.
  • Tutustuimme Amazon States Language (ASL) -kieleen ja visuaaliseen suunnittelijaan.
  • Lopuksi käsittelimme virheenkäsittelyä ja uudelleenyrityksiä vankkoja työnkulkuja varten.

Step Functions auttaa luomaan häiriönsietokykyisiä ja skaalautuvia palvelimettomia sovelluksia koordinoimalla niiden komponentteja tehokkaasti.

Aloita maksutta

Opi Serverless-kehitys AWS Lambdalla tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Työnkulkujen orkestrointi AWS Step Functionsilla” ilmainen?

Kyllä – oppitunnin ”Työnkulkujen orkestrointi AWS Step Functionsilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Serverless-kehitys AWS Lambdalla-kurssin, päivitä CoddyKit PROhon. Serverless-kehitys AWS Lambdalla-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Työnkulkujen orkestrointi AWS Step Functionsilla”?

Suunnittelette ja toteutatte monimutkaisia, tilallisia työnkulkuja AWS Step Functionsilla useiden Lambda-funktioiden ja muiden AWS-palveluiden koordinoimiseksi Harjoittelet Serverless-kehitys AWS Lambdalla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Serverless-kehitys AWS Lambdalla-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Serverless-kehitys AWS Lambdalla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Työnkulkujen orkestrointi AWS Step Functionsilla”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Serverless-kehitys AWS Lambdalla-oppitunnilla?

Kyllä. Jokainen Serverless-kehitys AWS Lambdalla-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Lambda-kutsut asynkronisesti
  2. Dead Letter -jonot (DLQ) virhetilanteisiin
  3. Työnkulkujen orkestrointi AWS Step Functionsilla
  4. Fan-out-malli SNS:n avulla
← Takaisin: Serverless-kehitys AWS Lambdalla