Nola sortu oso erraz API Rest bat AWS Lambda eta API Gateway erabiliz (I)

Aurreko sarrera batean esaten genuen bezala, ServerLess arkitektura berriek koste urriko soluzioak eskeintzen dituzte, aplikazioak guztiz modularizatzeko aukerarekin eta eskalabilitate aukera handiarekin.

ServerLess edo FaaS bezala ezagutzen dira, hodeian exekutatzen dira eta denbora horretan izandako kargagatik bakarrik kobratzen gaituzte hodeiko zerbitzu hornitzaileek.

Sarrera honetan zehazki Amazon Web Services-ek eskeintzen dizkigun AWS Lambda funtzioak erabiliko ditugu API Rest arrunt bat oso erraz eta azkar sortzeko. Horretarako, API Gateway bat gehituko diogu aurretik HTTP eskaeren entzule bezala. Gateway honek, AWS Lambda-n Python-en definitutako funtzio bat exekutatuko du eta erantzuna API Gateway-ak erabiltzaileari bidaliko dio. Hurrengo sarreretan Lambda funtzioei funtzionalitate gehiago gehituko dizkiogu, sortutako API Rest-ak metodo eta eskakizun gehiago jaso ahal izateko.

Sarrera hau dagokion bezala jarraitu ahal izateko, ezinbestekoa da AWS kontu bat izatea. Ez bada horrela, doako “free tier” kontu bat irekitzea gomendatzen dugu.

AWS Lambda proba funtzioa

Lehenik eta behin, exekutatuko den kode zatia programatuko dugu. Esan dugun bezala, Python erabiliko dugu hortarako. Programa zati honek, deitzen den bakoitzean, Getariako (Gipuzkoa) uneko eguraldia jasoko du OpenWeatherMap interneteko eguraldi zerbitzutik eta pantailan erakutsiko du.

Horretarako AWS web kontsolan sartuko gara AWS Lambda atalean. Atal honetan, orain arte sortu ditugun funtzioak erakutsiko dizkigu. Guk berri bat sortuko dugu. AWS web kontsolak ez du ematen aukerarik euskaraz, hainbat zerbitzu ingeleraz edo gaztelaniaz eskeintzen ditu.

Beste proiektuetan erabilitako edo komunitateak eginiko txantiloiak erabili daitezke hasiera puntu bezala baina guk hutsetik hasiko dugu gure proiektua.

Beharrezko izenak eta erabiliko dugun programazio ingurunea aukeratuko ditugu.

Baita emango dizkiogun baimenak ere.

Hurrengo pausua, kodea idaztea da. Kasu honetan, funtzioak OpenWeatherMap zerbitzuari deituko dio HTTP GET eskaera baten bidez, query parameter bidez hurrengo datuak pasako dizkiogu:

  1. appId: zerbitzuak alta emandakoan sortutako API Key-a
  2. id: herriaren identifikatzailea, adibide honetan Getaria (id: 6358128)
  3. units: erantzuna zein unitatetan jaso nahi den, adibide honetan metrics

Eskaera hurrengo helbidera egingo dugu: https://api.openweathermap.org/data/2.5/weather

Hau da itzatiko dugun kodea:

Behin dena kodetuta dugula, funtzioa gorde eta ongi funtzionatzen duela proba dezakegu. Horretarako goikaldean dugun “Probar” botoia erabiliko dugu. Lehen aldia bada, probako parametroak sortzeko eskatuko digu, baina funtzio honek ez duenez parametrorik erabiltzen, edozein datu jarri daitezke.

Funtzioari gauza asko gehitu dietzaiokegu; etiketak, beste AWS zerbitzuetara atzitzeko baimenak (S3 edo RDS adibidez), exekutatu nahi den ingurunearen sare parametroak… Hauei oraingoz ez diegu kasorik egingo eta defektuzko datuekin jarraituko dugu.

API Gateway-a sortu eta Lambda funtzioarekin konektatu

Hurrengo pausua API Gateway-a sortzea izango da. Gateway honek HTTP eskaerak jasoko ditu eta konfigurazioaren arabera Lambda funtzioari pasako dio testigoa. Hau sortzeko, gure Lambda funtzioaren trigger bezala sortuko dugu. Horretarako API Gateway aukeran sakatuko dugu.

Ikusten dugun bezala, orain irudian API Gateway-a ere azaltzen da.

Orain hau bera konfiguratu beharko dugu. Behean API Gateway hau sortzeko hainbat aukera emango dizkigu edo sortua dugun bat erabiltzeko. Guk berria sortuko dugu, segurtasun aukeretan autentikaziorik gabeko aukera erabiliko dugu, API irekia.

Hurrengo pantailan, defektuzko API Gateway baten konfigurazioa ikusiko dugu, non “endpoint” bat sortu duen eta edozein motatako (ANY) eskaera jasotakoan Lambda funtzioarekin konektatuko dena.

Aurreko diagraman ikusten da lehen azaldutakoa. Orain sortutako APIa publikatzea bakarrik falta zaigu. Horretarako “Deploy API” botoiari sakatuko diogu eta gure APIa interneten entzutera pasako da.

Azken pausua API honen URLa zein den jakin eta eskaerekin probatzea izango da. Hau jakiteko, “Stage” atalean sartu gaitezke, APIa publikatu dugun “Stage” aukeratu eta erabili nahi den metodoari sakatuz goikaldean azaltzen den URLa erabiliko dugu eskaerak egiteko.

Proba hauek egiteko nabigatzailea erabili dezakegu edo Postman bezalako aplikazio bat.

Hau da dena lehen sarrerari dagokionez. Hurrengo ataletan API honi funtzionalitatea gehitzen saiatuko gara, segurtasun keyak gehituaz edota datu baseetara atzituaz.

OHARRA: segurtasun arazoengatik eta Lambda funtzioan gure API keya jarri dugunez, aurreko irudian azaltzen den guk sortutako API Gateway-aren URLa ez da atzigarri izango.

Besterik gabe.

Ondo izan!

Web orri honek cookiek erabiltzen ditu erabiltzailearen nabigazioa errazteko