Serverless-kehitys AWS Lambdalla · Oppitunti

AWS Serverless Application Model (SAM)

Opitte määrittelemään, kehittämään ja ottamaan käyttöön serverless-sovelluksia AWS SAMilla, joka on avoimen lähdekoodin kehys AWS-sovellusten rakentamiseen

Oppitunti 1/411 vaihetta

AWS Serverless Application Model (SAM) on ilmainen Serverless-kehitys AWS Lambdalla-oppitunti CoddyKitissä. Tämä on oppitunti 1/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.

Palvelimettomuuden yksinkertaistaminen AWS SAM:n avulla

AWS Serverless Application Model (SAM) on avoimen lähdekoodin kehys, joka yksinkertaistaa palvelimettomien sovellusten rakentamista ja käyttöönottoa AWS:ssä.

Se laajentaa AWS CloudFormationia tarjoamalla erityisen, helppokäyttöisemmän syntaksin palvelimettomien resurssien, kuten Lambda-funktioiden, API Gateway -rajapintojen ja DynamoDB-taulukoiden, määrittämiseen. SAM auttaa hallitsemaan koko palvelimetonta sovellustanne yhtenä kokonaisuutena.

SAM-malli: suunnitelma

Jokaisen SAM-sovelluksen ytimessä on template.yaml-tiedosto. Tämä YAML- (tai JSON-)tiedosto toimii suunnitelmana, joka kuvaa kaikki sovelluksen muodostavat palvelimettomat resurssit.

SAM-mallit ovat pohjimmiltaan AWS CloudFormation -malleja, mutta ne sisältävät tärkeän Transform-ominaisuuden, joka ottaa käyttöön SAM:n yksinkertaistetun, palvelimettomille sovelluksille tarkoitetun syntaksin.

SAM-mallin rakenne

Tarkastellaan template.yaml-tiedostossa olevia keskeisiä osioita:

  • AWSTemplateFormatVersion: CloudFormationin vakioversio.
  • Transform: AWS::Serverless-2016-10-31: Tämä on välttämätön. Se kertoo CloudFormationille, että käytössä on SAM:n yksinkertaistettu syntaksi.
  • Description: Lyhyt kuvaus sovelluksestanne.
  • Resources: Tässä määritellään kaikki palvelimettomat komponentit, kuten Lambda-funktiot, API:t ja tietokannat.

Palvelimettoman funktion määrittäminen

SAM:ssa Lambda-funktio määritellään käyttämällä resurssityyppiä AWS::Serverless::Function. Määritätte sen keskeiset ominaisuudet, kuten suoritusympäristön, aloituspisteen (käsittelijän), muistin ja kutsumistavan.

  • Type: AWS::Serverless::Function: Tunnistaa resurssin Lambdaksi.
  • Handler: Koodissanne oleva funktio, jota AWS Lambda kutsuu suorituksen aloittamiseksi (esimerkiksi app.lambda_handler).
  • Runtime: Ohjelmointikielen suoritusympäristö (esimerkiksi python3.9, nodejs16.x).
  • CodeUri: Funktion lähdekoodin paikallinen polku.
  • Events: Määrittää, miten funktiota kutsutaan (esimerkiksi API Gateway -päätepisteen kautta).

Hello World -Lambda-käsittelijämme

Tässä on yksinkertainen Python-Lambda-funktio. Se on koodi, joka suoritetaan, kun palvelimetonta funktiotamme kutsutaan. Funktio palauttaa vain viestin ”Hello from Lambda!”.

import json

def lambda_handler(event, context):
    # Log the event for debugging purposes
    print("Received event: " + json.dumps(event))

    # Basic response for API Gateway
    response = {
        "statusCode": 200,
        "body": json.dumps("Hello from Lambda!")
    }
    return response

Funktion SAM-malli

Määritellään nyt Hello World -Lambda-funktiomme template.yaml-tiedostossa. Määritämme sen käynnistymään API Gatewayn GET-pyynnöstä polussa /hello.

Tässä mallissa oletetaan, että Python-koodinne (app.py) on tämän template.yaml-tiedoston kanssa samassa kansiossa nimeltä hello_world/.

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: A simple "Hello World" serverless application.

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: app.lambda_handler
      Runtime: python3.9
      CodeUri: hello_world/
      MemorySize: 128
      Timeout: 30
      Events:
        HelloWorldApi:
          Type: Api
          Properties:
            Path: /hello
            Method: GET

SAM CLI: käyttöönottotyökalunne

AWS SAM Command Line Interface (CLI) on tärkein työkalunne SAM-sovellusten kehittämiseen ja käyttöönottoon. Se tarjoaa komennot projektien alustamiseen, riippuvuuksien rakentamiseen, paikalliseen testaukseen ja sovelluksen käyttöönottoon AWS:ssä.

  • sam init: Aloittaa uuden palvelimettoman projektin.
  • sam build: Pakkaa sovelluksen koodin ja riippuvuudet.
  • sam deploy: Ottaa sovelluksen käyttöön AWS CloudFormationissa.

SAM-sovelluksen rakentaminen

Ennen sovelluksen käyttöönottoa se täytyy ”rakentaa”. Komento sam build kerää koodinne, niputtaa riippuvuudet, kuten Python-paketit, ja valmistelee kaiken käyttöönotettavaksi paketiksi.

Tämä komento luo .aws-sam-hakemiston, joka sisältää käsitellyt tuotokset.

sam build

SAM-sovelluksen käyttöönotto

Kun sovellus on rakennettu, lähettäkää se AWS:ään komennolla sam deploy. Tämä komento luo SAM-mallin perusteella CloudFormation-pinon tai päivittää sitä ja luo kaikki tarvittavat resurssit.

Teidän on määritettävä yksilöllinen pinon nimi ja S3-säilö koodituotoksia varten. Argumentti --capabilities CAPABILITY_IAM vahvistaa, että mallinne luo IAM-rooleja.

sam deploy --stack-name my-hello-app \
           --s3-bucket your-unique-s3-bucket-name \
           --capabilities CAPABILITY_IAM \
           --region us-east-1

Pikatarkistus: SAM-mallin komponentit

Mitkä seuraavista ovat tyypillisen AWS SAM -mallin (template.yaml) olennaisia komponentteja tai osioita?

Kertaus: SAM-matkanne alkaa

Olette juuri oppineet AWS SAM:n perusteet!

  • SAM yksinkertaistaa palvelimettomien sovellusten kehittämistä ja käyttöönottoa CloudFormation-pohjaisen mallin avulla.
  • Keskeisiä komponentteja ovat template.yaml sekä sen Transform-ominaisuus ja Resources-osio.
  • SAM CLI tarjoaa sovellusten hallintaan komennot, kuten sam init, sam build ja sam deploy.

SAM:n avulla voitte määrittää, rakentaa ja ottaa käyttöön monimutkaisia palvelimettomia arkkitehtuureja tehokkaasti, joten se on tehokas työkalu palvelimettomaan kehitykseen.

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 ”AWS Serverless Application Model (SAM)” ilmainen?

Kyllä – oppitunnin ”AWS Serverless Application Model (SAM)” 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 ”AWS Serverless Application Model (SAM)”?

Opitte määrittelemään, kehittämään ja ottamaan käyttöön serverless-sovelluksia AWS SAMilla, joka on avoimen lähdekoodin kehys AWS-sovellusten rakentamiseen 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 1/4.

Kuinka kauan ”AWS Serverless Application Model (SAM)”-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. AWS Serverless Application Model (SAM)
  2. Johdatus Serverless Frameworkiin
  3. Serverless-sovellusten CI/CD
  4. Paikallinen testaus SAM CLI:llä
← Takaisin: Serverless-kehitys AWS Lambdalla