Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9299

AWS Lambda から Cloud Firestore を使ってみる

$
0
0

FirestoreのデータをAlexaSkillから呼び出したかったのでLambdaに接続してみました。
そのときの手順を残しておきます。
勉強中の身ですので温かい心で読んで頂けると嬉しいです。

1.環境

Windows 10
Node v11.13.0

2.Firebaseのプロジェクト作る

Firebaseのコンソールからプロジェクトを作成します。
プロジェクトを作るとDatabaseがサイドバーから選べるのでそこから新しいデータベースを作成します。

3.ローカルフォルダにNode.jsのプロジェクトを作る

コマンドラインから任意のディレクトリに移動して
npm initを実行。
package.json が作成されます

4.Firebase Admin SDK をダウンロード

Firebaseのドキュメントに従ってnode-moduleをインストールしましょう
npm install firebase-admin --save
node-modules と package-lock.json が作成されたことを確認してください

5.プロジェクトの秘密鍵をダウンロード

Firebaseコンソールの「プロジェクトの設定」から「サービスアカウント」のタブ選択
Node.jsが選択された状態で「新しい秘密鍵の生成」をします。

プロジェクト情報をJSONでダウンロードできますので "serviceAccount.json" にリネームして先ほどのディレクトリ内に保存します。

6.index.jsを作成

Firestoreを操作する処理を書いていきます。
詳細は公式ドキュメントに載ってますのでそちらを参照してください。
以下はデータ保存する時のサンプルです。
Lambdaで実行するのでhandlerの中に処理を書きます

index.js
constadmin=require('firebase-admin');constserviceAccount=require('serviceAccount.json');admin.initializeApp({credential:admin.credential.cert(serviceAccount)});constdb=admin.firestore();exports.handler=(event,context,callback)=>{// Write a simple document with two fieldsconstdata={field1:"aaa",field2:newDate()};db.collection('lambda-docs').add(data).then((ref)=>{// On a successful write, return an object// containing the new doc id.callback(null,{id:ref.id});}).catch((err)=>{// Forward errors if the write failscallback(err);});}

7.zipファイルにまとめる

ファイルがすべて揃っていることを確認してzipファイルに圧縮していきます
新しいビットマップ イメージ (4).jpg
名前はなんでもok

8.Lambdaファンクションを作成してzipをアップロード

AWSコンソールからファンクションを作成します。
Nodeのバージョンが11系を選べなかったので最新の12にしときました。
まあ大丈夫だろう、、、笑
できればここはローカル環境と合わせた方がいいかもしれませんね

普通にコンソール画面からアップロードしていきましょう。
新しいビットマップ イメージ (3).jpg

8.実行してFirestoreに書き込み

テストでもいいので実行してみます。
ログが成功となればFirestoreに書き込まれているはずです。
新しいビットマップ イメージ (2).jpg

9.参考にしたサイト

公式のドキュメントの手順に沿ってやってみました。
Cloud Firestore を使ってみる
Lambda部分はこちらの記事がわかりやすかったです。Google翻訳にぶち込みましょう
How to use Cloud Firestore on AWS Lambda

以上、誰かのお役に立てれば嬉しいです(^^)


Viewing all articles
Browse latest Browse all 9299

Trending Articles