Sådan oprettes en serverløs applikation ved hjælp af AWS Chalice

Jeg stødte for nylig på AWS Chalice og var fascineret af den enkelhed og brugervenlighed, den tilbyder.

AWS Chalice er en serverløs ramme, der giver dig mulighed for at oprette serverløse applikationer ved hjælp af Python og distribuere dem på AWS ved hjælp af Amazon API Gateway og AWS Lambda.

Jeg besluttede at lege med det og var faktisk i stand til at oprette og implementere en prøve REST API på AWS inden for få minutter.

I denne artikel vil jeg lede dig gennem de nødvendige trin til at opbygge og implementere en serverløs applikation, der får de seneste nyheder fra Google Nyheder ved hjælp af Chalice.

Forudsætninger

Denne tutorial kræver en AWS-konto. Hvis du ikke allerede har en, skal du fortsætte med at oprette en. Vores applikation vil kun bruge de gratis niveaueressourcer, så omkostninger bør ikke være et problem.

Du skal også konfigurere sikkerhed og oprette brugere og roller for din adgang.

Sådan konfigureres AWS-legitimationsoplysninger

Chalice bruger AWS Command Line Interface (CLI) bag kulisserne til at implementere projektet. Hvis du ikke tidligere har brugt AWS's CLI til at arbejde med AWS-ressourcer, kan du installere det ved at følge retningslinjerne her.

Når du er installeret, skal du konfigurere din AWS CLI til at bruge legitimationsoplysningerne fra din AWS-konto.

Sådan installeres kalk

Dernæst skal du installere kalk. Vi bruger Python 3 i denne vejledning, men du kan bruge enhver version af Python understøttet af AWS Lambda.

Bekræft installation af Python

Installer kalk

Bekræft installation af kalk

Sådan oprettes et projekt

Kør derefter chalice new-projectkommandoen for at oprette et nyt projekt.

Dette opretter en daily-newsmappe i dit nuværende bibliotek. Du kan se, at kalken har oprettet flere filer i denne mappe. Vi arbejder kun med app.pyog requirements.txtfilerne i denne artikel.

Lad os se på indholdet af app.pyfilen:

Den new-projectkommando skabte en prøve app daily-news. Det definerer en enkelt visning /, der returnerer JSON-kroppen, {"hello": "world"}når den kaldes. Du kan nu ændre denne skabelon og tilføje mere kode for at læse nyheder fra Google.

Vi bruger Googles RSS-feed for at få vores nyheder. Da RSS-feeds består af data i XML-format, har vi brug for et Python-bibliotek kaldet Beautiful Soup til parsing af XML-data.

Du kan installere Beautiful Soup og dets XML-parseringsbibliotek ved hjælp af pipdenne:

Føj derefter følgende import til app.py. Dette tilføjer i det væsentlige import fra for urllibat foretage HTTP-opkald og for bs4at analysere XML.

Dernæst skal du tilføje en metode til at hente RSS-feedet fra Google. Vi bruger urllibtil at foretage et HTTP-opkald til Googles RSS-slutpunkt og få svaret. Du kan derefter analysere svaret for at udtrække nyhedstitlen og udgivelsesdatoen og oprette en liste over nyheder.

For at gøre dette skal du tilføje følgende kode til din app.py:

Opdater indeksmetoden for app.pyat påkalde denne metode og returnere listen over nyheder som resultat.

Bemærk, at du har installeret et par afhængigheder for at få koden til at fungere. Disse afhængigheder blev installeret lokalt og vil ikke være tilgængelige for AWS Lambda-containeren ved kørsel.

For at gøre dem tilgængelige for AWS Lambda skal du pakke dem sammen med din kode.

For at gøre det skal du tilføje følgende til requirements.txtfilen. Bæger pakker disse afhængigheder som en del af din kode under build og uploader dem som en del af Lambda-funktionen.

Sådan implementeres projektet

Lad os installere denne app. daily-newsKør chalice deploykommandoen fra mappen .

Dette implementerer din API på Amazon API Gateway og opretter en ny funktion på AWS Lambda.

Lad os prøve at få adgang til API nu. Du kan bruge curltil at påkalde den API-gateway-URL, som du modtog under chalice deploy. Svaret fra API-opkaldet returnerer en liste over nyheder som vist nedenfor.

Sådan ryddes op i ressourcer

Du kan også bruge chalice deletekommandoen til at slette alle de ressourcer, der blev oprettet, da du kørte chalice deploykommandoen.

Konklusion

Tillykke! Du har lige implementeret en serverløs applikation på AWS ved hjælp af Chalice. Det var ikke for svært, var det?

Du kan nu gå videre og foretage ændringer i din app.pyfil og køre igen for chalice deployat ominstallere dine ændringer.

Du kan også bruge Chalice til at integrere din serverløse app med Amazon S3, Amazon SNS, Amazon SQS og andre AWS-tjenester. Se på selvstudierne og fortsæt med at udforske. Den fulde kildekode til denne vejledning kan findes her.

Tak fordi du har været hos mig indtil videre. Håber du kunne lide artiklen. Du kan få kontakt med mig på LinkedIn, hvor jeg regelmæssigt diskuterer teknologi og liv. Se også nogle af mine andre artikler om Medium. God læselyst ?