Kuinka käyttää Cloud Firestorea AWS Lambdassa

Tämä opas opettaa sinulle, kuinka AWS Lambda -toiminto, joka käyttää Node.js Firebase Admin SDK: ta, soittaa Cloud Firestore -sovellukseen oikein.

Ennen kuin luet lisää, on syytä mainita, että yksinkertaisin tapa kirjoittaa palvelimeton koodi on Cloud Functions for Firebase -toiminnon käyttö, joka toimii Cloud Firestore -sovelluksen ulkopuolella. Tämä opas on tarkoitettu vain niille, jotka ovat päättäneet käyttää AWS Lambda -sovellusta.

Joten miksi tämä tarvitsee jopa oppaan? Node.js SDK Cloud Firestore -sovellukseen käyttää gRPC: tä kommunikointiin. gRPC on rakennettu natiivikoodiin, ja oletuksena AWS Lambda -toiminnot eivät voi suorittaa natiivikoodia. Jos asennat vain npm asennuksen ja lataat sitten koodisi, saatat saada tällaisen virhesanoman, kun yrität suorittaa lambda-toimintosi:

Älä pelkää! Siellä on melko yksinkertainen korjaus, jos luet.

edellytykset

Ennen kuin jatkamme, meidän on varmistettava, että olet oikeassa paikassa. Tämä ei ole opas siitä, miksi sinun kannattaa käyttää AWS Lambda -toimintoja, eikä tämä ole opas Cloud Firestore -sovelluksen käytöstä. Sen lisäksi, että tiedät näistä kahdesta palvelusta, sinun on myös varmistettava, että seuraavat riippuvuudet on asennettu koneellesi:

Satamatyöläinen

Sinulla on oltava telakka asennettuna koneellesi. Voit tarkistaa, onko sinulla satamalaitetta, suorittamalla sataman suorittamalla hello-world. Jos tämä ei auta, tutustu dokumenteihin telakan asentamisesta.

AWS CLI (valinnainen)

Tässä oppaassa käytämme AWS CLI: tä Lambda-toimintojen käyttöönottoon, vaikka voit ottaa toiminnot käyttöön haluamallasi tavalla. Asenna AWS CLI noudattamalla Github README -sovelluksen ohjeita.

Perustaa

Tarvitsemme vain muutaman tiedoston tämän oppaan loppuun saattamiseksi. Luo uusi hakemisto seuraavilla tiedostoilla:

Package.json voi olla erittäin yksinkertainen, tarvitset vain riippuvuuden firebase-administa:

Toimintosi rungon tulisi olla hakemistossa index.js. Kaikki Cloud Firestoreon kirjoittavat toiminnot toimivat, tässä on erittäin yksinkertainen toiminto, joka lisää uuden asiakirjan jokaisesta suorituksesta:

Lopullinen tiedosto serviceAccount.json on JSON-avain palvelutilille, jolla on valtuudet muokata Cloud Firestore-tietoja Firebase-projektissasi. Tämä vaihe vaaditaan firebase-adminin käyttämiseen Lambdassa, eikä se ole erityinen Cloud Firestore -sovelluksen käyttämisessä. Jos haluat saada uuden palvelun tiliavaimen, siirry Palvelun tilit -sivulle Firebase-konsolissa ja valitse "Node.js" ja napsauta sitten "Luo uusi yksityinen avain":

Luo uusi JSON-palvelutilin avain

Jos käytät yllä olevaa koodia, nimeä tuloksena saatu JSON-tiedosto uudelleen serviceAccount.json ja siirrä se nykyiseen hakemistoon.

Asenna ja ota käyttöön

Nyt kun olet kehittänyt kehitysympäristösi, olet valmis ottamaan käyttöön toimintosi. Ensimmäinen askel ja tämän oppaan tärkein vaihe on käyttää dockeria riippuvuuksien asentamiseen:

Kun tämä komento on valmis, sinulla pitäisi olla node_modules-hakemisto, joka sisältää firebase_admin-kansion. Telakan käyttäminen riippuvuuksien asentamiseen tekee niin tavalla, joka tekee siitä yhteensopivan AWS Lambda -toiminnosi suoritusympäristön kanssa.

Nyt on aika ottaa käyttöön toimintosi. Ensin pakata nykyinen hakemisto. Tämä luo melko suuren ZIP-tiedoston, koska koko node_modules-hakemisto on mukana:

Seuraavaksi käytä AWS CLI: tä toiminnon käyttöönottamiseksi. Voit käyttää mitä tahansa nimeä, aluetta ja roolia. Ainoat tärkeät argumentit tässä ovat käsittelijä, suoritusaika ja zip-tiedosto:

Suorita lopuksi toimintosi. Jos se toimii, sinun pitäisi nähdä jotain tällaista:

Onnistunut lambdan suorittaminen

Ja Firebase-konsolissa sinun pitäisi nähdä uusi asiakirja lambda-docs-kokoelmassa:

Uutta tietoa Firebase-tietokannasta

Se siitä! Olet kirjoittanut tietoja onnistuneesti Cloud Firestoreen AWS Lambda -toiminnosta.