AWS SAM -mal

AWS SAM -mal

En serverløs applikasjon kan bygges ved hjelp av tjenester levert av AWS som AWS Serverless Application Model (SAM). AWS gir AWS Sam CLI for å utvikle applikasjoner basert på Sam. Det letter et utførelsesmiljø som ligner på Lambda for å bygge, teste og feilsøke applikasjoner levert av SAM -maler. Ved å bruke AWS SAM CLI kan vi også distribuere SAM -applikasjonen til AWS.

Hva vil vi dekke?

I denne guiden vil vi utforske AWS SAM -mal.

Hva er AWS Sam?

AWS SAM brukes til å utvikle serverløse applikasjoner på AWS. Både Sam og Sam Cli er under en åpen kildekode-lisens. Sam definerer ressursene som brukes i serverløse applikasjoner. Den har korte syntakser for å betegne APIer, funksjoner, databaser og kartlegging av hendelseskilde. SAM -syntaksene blir transformert og utvidet til AWS CloudFormation Syntaxes. Programmer kan modelleres ved hjelp av YAML. På denne måten kan serverløse applikasjoner bygges raskt.

Funksjoner av AWS Sam

AWS SAM kan integreres med andre AWS -tjenester og har dermed flere fordeler for å utvikle serverløse applikasjoner:

  1. Ved hjelp av AWS SAM er organisering av tilsvarende komponenter og ressurser forenklet. Man kan bruke den til å distribuere konfigurasjon mellom ressursene, og alle tilsvarende ressurser kan distribueres samlet.
  1. Mens de distribuerer, utvides SAM -syntaksene til Native AWS CloudFormation Syntaxes. Dette gir oss muligheten til pålitelig distribusjon med CloudFormation.
  1. Vi kan utvikle serverløse applikasjoner på mange runtime -språk. Med Sam CLI kan vi lokalt bygge, pilot løpe og fikse de serverløse applikasjonene. SAM CLI kan også integreres med AWS -medfølgende verktøysett.
  1. AWS SAM CLI kan installeres på mange store Linux -baserte distros, Mac og Windows.

Ser inn i SAM -malen

En AWS SAM -mal ligner veldig på AWS CloudFormation -mal, men det er noen store forskjeller mellom de to når det gjelder følgende malseksjoner:

  1. Transform seksjon: En AWS SAM-mal bruker en eksplisitt erklæring om skjemaet, Transform: AWS :: Serverløs-2016-10-31, denne erklæringen spesifiserer at denne AWS CloudFormation-malen er en AWS SAM-mal.
  1. Globalseksjonen: AWS Sam har en unik globalseksjon som erklærer ressursene som har vanlige konfigurasjoner. Globals -delen fungerer med AWS :: Serverless :: Funksjon, AWS :: Serverless :: API, AWS :: Serverless :: Httpapi, og AWS :: Serverless :: Simpletable Resources.
  1. Ressurser: Ressursdelen av AWS SAM -malen kan også inneholde CloudFormation Resources.
  1. Parameterseksjonen: SAM -malen inneholder en parameterseksjon for bestående verdier ved kjøretid. Denne delen inneholder objekter som gjør at 'SAM distribuert -ledet' kommandoen for å gi ekstra spørsmål til en bruker.

De gjenværende malseksjonene ..

Ved siden av de ovennevnte seksjonene, følger gjenværende seksjoner med CloudFormation Mal File -delen med det tilsvarende navnet. AWS SAM -mal krever bare Transform and Resources -seksjoner som et must. Vi kan imidlertid også legge til andre seksjoner. Bortsett fra delen ovenfor, kan vi også ha den nevnte delen nedenfor i AWS SAM -mal:

  1. Beskrivelse: Den inneholder en valgfri beskrivelse av malen.
  1. Metadata: Det er også en valgfri seksjon som gir ytterligere informasjon om malen.
  1. Kartlegginger: En nøkler som kartlegger med deres tilsvarende verdier for å spesifisere betingede parameterverdier.
  1. Forhold: Den inneholder regler eller krav som styrer hvis spesifikk Ressurser genereres, eller hvis spesifikke egenskaper til en ressurs får en verdi mens du oppretter eller oppdaterer en stabel.
  1. Utganger: Den erklærer verdiene som returneres når egenskapene til en stabel blir sett på.

Malseksjonene diskutert ovenfor kan legges til i hvilken som helst rekkefølge. Imidlertid bør man holde seg til en logisk ordre. AWS Sam Cli har en konfigurasjonsfil med Toml -filformat. Denne filen, kalt som Samconfig.Toml, Holder standardparametere for SAM CLI -kommandoene.

For å bekrefte en AWS SAM -mal, bruk kommandoformatet:

Sam validerer [alternativer]

Eksempel SAM -mal

Her er eksempler på maler for AWS SAM som inneholder spesifikke seksjoner og de tilsvarende prøvestedelsene som vises med 'Sam distribuert'Kommando:

Parameterseksjonen:

Parametere:
Ourpar:
Type: Streng
Standard: Ourpalval
Eksempelutgangsprompt:
Parameter Ourpar [OurParval]:

Ressursdel:

Ressurser:
Hei Verden:
Type: AWS :: Serverløs :: Funksjon
Egenskaper:
Codeuri: hallo_world/
Handler: App.lambda_handler
Runtime: Python3.7
CodesigningConfigarn: ARN: AWS: LAMBDA: US-EAST-1: XXXXXXXXXXXX: Kodesignasjonskonfig: CSC-12E12345DB1234567
Eksempelutgangsprompt:
#Fundne kodesigneringskonfigurasjoner i funksjonsdefinisjonene dine
Vil du signere koden din? [Y/n]:
#Vennligst oppgi signeringsprofildetaljer for følgende funksjoner og lag
#Signende profildetaljer for funksjon 'Helloworld'
Signering av profilnavn:
Signeringsprofileierkonto -ID (valgfritt):
#Signende profildetaljer for Layer 'Mylayer', som brukes av funksjoner 'Helloworld'
Signering av profilnavn:
Signeringsprofileierkonto -ID (valgfritt):

Konklusjon

I denne guiden har vi utforsket AWS SAM -malen. Neste ting du kan prøve er å distribuere en enkel Hello World Serverless -applikasjon som inneholder en AWS SAM -malfil.