Kako izraditi aplikaciju bez poslužitelja pomoću AWS kaleža

Nedavno sam naišao na AWS Kalež i bio sam fasciniran jednostavnošću i upotrebljivošću koju nudi.

AWS Chalice okvir je bez poslužitelja koji vam omogućuje izradu aplikacija bez poslužitelja pomoću Pythona i njihovo raspoređivanje na AWS pomoću Amazon API Gateway i AWS Lambda.

Odlučio sam se poigrati s tim i zapravo sam uspio stvoriti i rasporediti uzorak REST API-ja na AWS u roku od nekoliko minuta.

U ovom članku provest ću vas kroz korake potrebne za izgradnju i implementaciju aplikacije bez poslužitelja koja najnovije vijesti dobiva s Google vijesti pomoću Kaleža.

Preduvjeti

Ovaj vodič zahtijeva AWS račun. Ako ga već nemate, izvolite i stvorite ga. Naša će aplikacija koristiti samo besplatne resurse, tako da troškovi ne bi trebali predstavljati problem.

Također morate konfigurirati sigurnost i stvoriti korisnike i uloge za svoj pristup.

Kako konfigurirati vjerodajnice za AWS

Kalež koristi AWS sučelje naredbenog retka (CLI) iza kulisa za postavljanje projekta. Ako prije niste koristili AWS-ov CLI za rad s AWS resursima, možete ga instalirati slijedeći ovdje navedene smjernice.

Jednom instaliran, morate konfigurirati svoj AWS CLI da koristi vjerodajnice s vašeg AWS računa.

Kako instalirati kalež

Dalje, morate instalirati Kalež. U ovom ćemo uputstvu koristiti Python 3, ali možete koristiti bilo koju verziju Pythona koju podržava AWS Lambda.

Provjerite instalaciju Pythona

Instalirajte kalež

Provjerite instalaciju kaleža

Kako stvoriti projekt

Zatim pokrenite chalice new-projectnaredbu za stvaranje novog projekta.

Ovo će stvoriti daily-newsmapu u vašem trenutnom direktoriju. Možete vidjeti da je Kalež stvorio nekoliko datoteka u ovoj mapi. S datotekama app.pyi radit ćemo requirements.txtsamo u ovom članku.

Pogledajmo sadržaj app.pydatoteke:

new-projectNaredbu stvorio uzorak aplikacije daily-news. Definira jedan pogled /koji vraća JSON tijelo {"hello": "world"}kad se pozove. Sada možete izmijeniti ovaj predložak i dodati još koda za čitanje vijesti s Googlea.

Koristit ćemo Googleov RSS feed za dobivanje vijesti. Budući da se RSS feedovi sastoje od podataka u XML formatu, trebat će nam Python biblioteka pod nazivom Beautiful Soup za raščlanjivanje XML podataka.

Možete instalirati Beautiful Soup i njegovu XML biblioteku za raščlanjivanje koristeći pipovako:

Dalje dodajte sljedeći uvoz u app.py. To u osnovi dodaje uvoz iz urllibza upućivanje HTTP poziva i bs4raščlanjivanje XML-a.

Dalje, morate dodati metodu za dohvaćanje RSS feeda od Googlea. Koristit ćemo urllibza upućivanje HTTP poziva Googleovoj krajnjoj točki RSS i dobivanje odgovora. Zatim možete analizirati odgovor da biste izdvojili naslov vijesti i datum objave i stvorili popis vijesti.

Da biste to učinili, dodajte sljedeći kôd u svoj app.py:

Ažurirajte metodu indeksa app.pyda biste pozvali ovu metodu i kao rezultat vratili popis vijesti.

Imajte na umu da ste instalirali nekoliko ovisnosti da bi kod radio. Te su ovisnosti instalirane lokalno i neće biti dostupne spremniku AWS Lambda tijekom izvođenja.

Da biste ih učinili dostupnima AWS Lambda, morat ćete ih spakirati zajedno sa svojim kodom.

Da biste to učinili, dodajte sljedeće u requirements.txtdatoteku. Kalež spakira ove ovisnosti kao dio vašeg koda tijekom gradnje i prenosi ih kao dio funkcije Lambda.

Kako rasporediti projekt

Postavimo ovu aplikaciju. Iz daily-newsmape pokrenite chalice deploynaredbu.

Ovo postavlja vaš API na Amazon API Gateway i stvara novu funkciju na AWS Lambda.

Pokušajmo odmah pristupiti API-ju. Možete koristiti curlza pozivanje URL-a API pristupnika koji ste primili tijekom chalice deploy. Odgovor na API poziv vratio bi popis vijesti kao što je prikazano u nastavku.

Kako očistiti resurse

chalice deleteNaredbu također možete koristiti za brisanje svih resursa stvorenih kada ste izvršili chalice deploynaredbu.

Zaključak

Čestitamo! Upravo ste rasporedili aplikaciju bez poslužitelja na AWS pomoću Kaleža. Nije bilo pretjerano teško, zar ne?

Sada možete naprijed izvršiti bilo kakve izmjene u svojoj app.pydatoteci i ponoviti postupak chalice deployda biste preusmjerili svoje promjene.

Kalež također možete koristiti za integraciju svoje aplikacije bez poslužitelja s Amazonom S3, Amazon SNS, Amazon SQS i drugim AWS uslugama. Pogledajte tutorijale i nastavite istraživati. Cjeloviti izvorni kod za ovaj vodič možete pronaći ovdje.

Hvala vam što ste do sada ostali sa mnom. Nadam se da vam se svidio članak. Možete se povezati sa mnom na LinkedInu gdje redovito raspravljam o tehnologiji i životu. Također pogledajte neke od mojih ostalih članaka o Medijumu. Sretno čitanje?