Kuidas kasutada AWS Lambdas pilverestorani?

See juhend õpetab teile, kuidas õigesti juurutada AWS-i Lambda-funktsiooni, mis kasutab Nove.js Firebase Admin SDK-d Cloud Firestore'i kutsumiseks.

Enne edasist lugemist tasub mainida, et serverivaba koodi kirjutamise lihtsaim viis on Firebase'i pilvefunktsioonide kasutamine, mis töötab koos Cloud Firestorega. See juhend on mõeldud ainult neile, kes on otsustanud AWS Lambdat kasutada.

Miks see vajab isegi juhendit? Node.js SDK Cloud Firestore jaoks kasutab suhtlemiseks gRPC-d. gRPC on üles ehitatud natiivkoodile ja vaikimisi ei saa AWS Lambda funktsioonid natiivkoodi käitada. Kui te lihtsalt installite npm ja laadite oma koodi siis üles, võite lambdafunktsiooni käivitamisel saada sellise tõrketeate:

Ära karda! Kui loete edasi, on üsna lihtne lahendus.

Eeltingimused

Enne kui läheme kaugemale, peame veenduma, et olete õiges kohas. See ei ole juhend selle kohta, miks võiksite kasutada AWS Lambda funktsioone, ega ka see juhend Cloud Firestore kasutamise kohta. Lisaks nende kahe teenuse tundmisele peate kindlasti kontrollima, et teie arvutisse oleks installitud järgmised sõltuvused:

Dokk

Teie arvutisse peab olema dokk paigaldatud. Doki olemasolu kontrollimiseks käivitage doki käivitus hello-world. Kui see teie jaoks ei tööta, siis doki installimiseks lugege dokumente.

AWS CLI (valikuline)

Selles juhendis kasutame AWS CLI-d Lambda funktsioonide juurutamiseks, ehkki saate oma funktsioone juurutada ka igal viisil, nagu soovite. AWS CLI installimiseks järgige Github README juhiseid.

Seadistamine

Selle juhendi täitmiseks vajame vaid mõnda faili. Looge uus kataloog järgmiste failidega:

Teie pakett.json võib olla äärmiselt lihtne, kõik, mida vajate, on sõltuvus Firebase-administ:

Teie funktsiooni põhiosa peaks olema kataloogis index.js. Kõik funktsioonid, mis kirjutavad Cloud Firestore'i, toimivad, siin on äärmiselt lihtne funktsioon, mis lisab igale täitmisele uue dokumendi:

Lõplik fail serviceAccount.json on JSON-võti teenusekonto jaoks, millel on õigus muuta Firebase'i projekti pilverestorani andmeid. See samm on vajalik Firebase-admin'i kasutamiseks Lambdas ja see pole spetsiifiline Cloud Firestore'i kasutamiseks. Uue teenusekonto võtme saamiseks minge Firebase'i konsoolis lehele Teeninduskontod ja valige "Node.js" ning klõpsake siis nuppu "Genereeri uus privaatvõti":

Genereerige uus JSON-teenuse kontovõti

Kui kasutate ülaltoodud koodi, nimetage saadud JSON-fail ümber nimeks serviceAccount.json ja teisaldage see praegusesse kataloogi.

Installige ja juurutage

Nüüd, kui olete oma arengukeskkonna üles seadnud, olete valmis oma funktsiooni juurutama. Selle juhendi esimene ja kõige olulisem samm on sõltuvuse installimiseks doki kasutamine:

Kui see käsk on lõpule viidud, peaks teil olema kataloog node_modules, mis sisaldab kausta firebase_admin. Dekkeri kasutamine sõltuvuste installimiseks teeb seda viisil, mis muudab ühilduvaks teie funktsiooni AWS Lambda käituskeskkonnaga.

Nüüd on aeg oma funktsioon kasutusele võtta. Esmalt pakkige oma praegune kataloog üles. See loob üsna suure ZIP-faili, kuna kaasatud on kogu sõlm_modules kataloog:

Järgmisena kasutage funktsiooni juurutamiseks AWS CLI-d. Võite kasutada mis tahes nime, piirkonda ja rolli, mida soovite. Ainsad olulised argumendid on siin töötleja, käitusaeg ja zip-fail:

Lõpuks täitke oma funktsioon. Kui see töötab, peaksite nägema midagi sellist:

Lambda edukas täitmine

Ja Firebase'i konsoolis peaksite nägema uut dokumenti lambda-docs kollektsioonis:

Uued andmed Firebase'is

See selleks! Andmete salvestamine Cloud Firestore'isse on õnnestunud funktsiooni AWS Lambda abil.