この記事は、「Google Cloud Platform Advent Calendar 2020」の19日目の記事です。
Serverless FrameworkでNode.jsのサーバーレスAPIをGCPにデプロイしてみました ![:tada: :tada:]()
事前準備
事前設定ができていれば3コマンドでデプロイできます!
はじめに、Node.jsテンプレートでプロジェクトを作成します。
sls create -t google-nodejs -p sample
次に、対象プロジェクトに移動しパッケージをインストールします。
cd sample
npm install
作成されたプロジェクトを確認します。今回は、「serverless.yml」のみ変更します。
package.json
{"name":"sample","version":"0.1.0","description":"","main":"index.js","scripts":{"test":"echo \"Error: no test specified\"&& exit 1"},"author":"serverless.com","license":"MIT","devDependencies":{"serverless-google-cloudfunctions":"*"}}
index.js
'use strict';exports.http=(request,response)=>{response.status(200).send('Hello World!');};exports.event=(event,callback)=>{callback();};
serverless.yml
service:sampleprovider:name:googlestage:devruntime:nodejs10region:us-central1project:GCPのプロジェクト名credentials:~/.gcloud/keyfile.jsonframeworkVersion:'2'plugins:-serverless-google-cloudfunctionspackage:exclude:-node_modules/**-.gitignore-.git/**functions:first:handler:httpevents:-http:path
対象のGCPのプロジェクト名に変更。
project:GCPのプロジェクト名
プロジェクトが完成したらGCPにデプロイします。
sls deploy
デプロイ後に、GCPのコンソールでCloud Functionsが作成されているのを確認してみます。
「allUsers」を割り当ててAPIにアクセスできるように設定します。
表示されました
Serverless FrameworkでNode.jsのサーバーレスAPIをGCPにデプロイできました ![:thumbsup: :thumbsup:]()
Serverless Frameworkを利用することで、手軽にGCPにサーバーレス環境をデプロイできました 色々と設定できそうなので今後も試していきたいと思います
以前にZappaでためした記事、「ZappaでDBもパッケージしたサーバーレスAPIを構築してみた」もあるので比較してみて頂ければと思います。
Serverless Frameworkについて、他にも記事を書いています。よろしければぜひ
tags - Serverless Framework
やってみたシリーズ
tags - Try