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
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 (esimerkiksiapp.lambda_handler).Runtime: Ohjelmointikielen suoritusympäristö (esimerkiksipython3.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 responseFunktion 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: GETSAM 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 buildSAM-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-1Pikatarkistus: 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.yamlsekä senTransform-ominaisuus jaResources-osio. - SAM CLI tarjoaa sovellusten hallintaan komennot, kuten
sam init,sam buildjasam 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.
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
- AWS Serverless Application Model (SAM)
- Johdatus Serverless Frameworkiin
- Serverless-sovellusten CI/CD
- Paikallinen testaus SAM CLI:llä