Kaip sukurti programą be serverio naudojant AWS Chalice

Neseniai susidūriau su „AWS Chalice“ ir susižavėjau jo siūlomu paprastumu ir patogumu.

„AWS Chalice“ yra be serverio sistema, leidžianti kurti programas be serverių naudojant „Python“, o jas diegti AWS naudojant „Amazon API Gateway“ ir „AWS Lambda“.

Aš nusprendžiau pažaisti su juo ir iš tikrųjų sugebėjau per kelias minutes sukurti ir įdiegti pavyzdinį REST API AWS.

Šiame straipsnyje paaiškinsiu veiksmus, kurių reikia norint sukurti ir įdiegti programą be serverio, kuri gauna naujausias naujienas iš „Google“ naujienų naudodama „Chalice“.

Būtinos sąlygos

Šiai pamokai reikalinga AWS paskyra. Jei dar neturite, eikite į priekį ir sukurkite. Mūsų programoje bus naudojami tik nemokamo lygio ištekliai, todėl išlaidos neturėtų būti problema.

Taip pat turite sukonfigūruoti saugumą ir sukurti prieigai naudotojus bei vaidmenis.

Kaip konfigūruoti AWS prisijungimo duomenis

Chalice naudoja AWS komandų eilutės sąsają (CLI) užkulisiuose, kad įdiegtų projektą. Jei anksčiau nenaudojote AWS CLI, kad galėtumėte dirbti su AWS ištekliais, galite jį įdiegti vadovaudamiesi čia pateiktomis gairėmis.

Įdiegę turite sukonfigūruoti AWS CLI, kad būtų naudojami jūsų AWS paskyros kredencialai.

Kaip įdiegti taurę

Tada turite įdiegti „Chalice“. Šioje mokymo programoje naudosime „Python 3“, tačiau galite naudoti bet kurią „Python“ versiją, palaikomą „AWS Lambda“.

Patikrinkite „Python“ diegimą

Įdiekite taurę

Patikrinkite taurelių įrengimą

Kaip sukurti projektą

Tada paleiskite chalice new-projectkomandą, kad sukurtumėte naują projektą.

Tai sukurs daily-newsaplanką jūsų dabartiniame kataloge. Galite pamatyti, kad Chalice šiame aplanke sukūrė keletą failų. Mes bus dirbti su app.pyir requirements.txtfailus tik šiame straipsnyje.

Pažvelkime į app.pyfailo turinį :

new-projectKomanda sukūrė pavyzdinį programą daily-news. Tai apibrėžia vieną vaizdą /, kuris grąžina JSON kūną, {"hello": "world"}kai jis iškviečiamas. Dabar galite modifikuoti šį šabloną ir pridėti daugiau kodo, kad galėtumėte skaityti „Google“ naujienas.

Norėdami gauti savo naujienas, naudosime „Google“ RSS kanalą. Kadangi RSS sklaidos kanalus sudaro duomenys XML formatu, XML duomenims analizuoti reikės „Python“ bibliotekos, vadinamos „Beautiful Soup“.

Galite įdiegti „Beautiful Soup“ ir jos XML analizavimo biblioteką naudodamiesi piptokiu būdu:

Tada pridėkite šiuos importuojamus failus į app.py. Tai iš esmės prideda importą iš urllibHTTP skambučių ir bs4XML analizavimo.

Tada turite pridėti metodą, kaip gauti RSS kanalą iš „Google“. Mes naudosime urllibHTTP skambutį į „Google“ RSS galutinį tašką ir gausime atsakymą. Tada galite analizuoti atsakymą, kad gautumėte naujienų pavadinimą ir paskelbimo datą, ir sukursite naujienų sąrašą.

Norėdami tai padaryti, pridėkite šį kodą prie savo app.py:

Atnaujinkite indekso metodą, app.pynorėdami pasinaudoti šiuo metodu ir grąžinti naujienų sąrašą.

Atminkite, kad įdiegėte keletą priklausomybių, kad kodas veiktų. Šios priklausomybės buvo įdiegtos vietoje ir nebus vykdomos „AWS Lambda“ talpykloje.

Norėdami, kad jie būtų prieinami „AWS Lambda“, turėsite juos supakuoti kartu su savo kodu.

Norėdami tai padaryti, pridėkite šiuos requirements.txtfailus prie failo. „Chalice“ sudaro šias priklausomybes kaip jūsų kodo dalį kuriant ir įkelia jas kaip „Lambda“ funkcijos dalį.

Kaip įdiegti projektą

Diegime šią programą. Iš daily-newsaplanko vykdykite chalice deploykomandą.

Tai įdiegia jūsų API „Amazon API Gateway“ ir sukuria naują „AWS Lambda“ funkciją.

Pabandykime dabar pasiekti API. Galite naudoti curlnorėdami iškviesti API šliuzo URL, kurį gavote per chalice deploy. Atsakius į API skambutį, bus pateiktas naujienų sąrašas, kaip parodyta žemiau.

Kaip išvalyti išteklius

Be to, naudodami chalice deletekomandą galite ištrinti visus išteklius, sukurtus vykdant chalice deploykomandą.

Išvada

Sveikiname! Jūs ką tik įdiegėte programą be serverio AWS naudodami „Chalice“. Tai nebuvo per sunku, ar ne?

Dabar galite tęsti bet kokius app.pyfailo pakeitimus ir paleisti chalice deployiš naujo, kad pakeistumėte pakeitimus.

Taip pat galite naudoti „Chalice“, kad integruotumėte programą be serverio į „Amazon S3“, „Amazon SNS“, „Amazon SQS“ ir kitas AWS paslaugas. Pažvelkite į mokymo programas ir toliau tyrinėkite. Visą šios mokymo programos šaltinio kodą galite rasti čia.

Ačiū, kad likote su manimi iki šiol. Tikiuosi, kad jums patiko straipsnis. Su manimi galite susisiekti per „LinkedIn“, kur aš reguliariai aptariu technologijas ir gyvenimą. Taip pat pažiūrėkite į keletą kitų mano straipsnių apie „Medium“. Laimingo skaitymo?