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-project
naredbu za stvaranje novog projekta.

Ovo će stvoriti daily-news
mapu u vašem trenutnom direktoriju. Možete vidjeti da je Kalež stvorio nekoliko datoteka u ovoj mapi. S datotekama app.py
i radit ćemo requirements.txt
samo u ovom članku.

Pogledajmo sadržaj app.py
datoteke:
new-project
Naredbu 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 pip
ovako:

Dalje dodajte sljedeći uvoz u app.py
. To u osnovi dodaje uvoz iz urllib
za upućivanje HTTP poziva i bs4
raščlanjivanje XML-a.
Dalje, morate dodati metodu za dohvaćanje RSS feeda od Googlea. Koristit ćemo urllib
za 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.py
da 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.txt
datoteku. 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-news
mape pokrenite chalice deploy
naredbu.

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


Pokušajmo odmah pristupiti API-ju. Možete koristiti curl
za 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 delete
Naredbu također možete koristiti za brisanje svih resursa stvorenih kada ste izvršili chalice deploy
naredbu.

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.py
datoteci i ponoviti postupak chalice deploy
da 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?