St_Hakky’s blog

Data Science / Human Resources / Web Applicationについて書きます

【GCP】Serverless frameworkを使ってCloud Functionを作る

こんにちは。

f:id:St_Hakky:20201104150843j:plain

最近、Serverless Frameworkを使ってCloud functionを作る機会があったので、そちらについてまとめておきます。

Serverless Frameworkとは

ServerlessアプリケーションであるLambdaやCloud Functionを構成管理したりデプロイしたり、ローカルで試したりするためのツールです。

以下、公式サイト。多少できることが最新の物に対して足りなかったりしますが、メインの使い所に対しては、問題なく機能があるので、ドキュメント読んでやりたいことができるかを確認しておくほうが良きかなと思います。

www.serverless.com

学習コストも少なく対応することができるので、おすすめです。

使う前の準備

serverless frameworkは、node.jsで書かれています。なので、nodeをインストールしておきましょう。

個人的におすすめなのは、nvmでnodeのバージョンを管理しておくこと。以下は、Centosに入れたときのブログですが、macとかでもほとんど同じなので、参考になるかなと。

www.st-hakky-blog.com

インストール

これでインストールすることができます。

# servelessのインストール
$ npm install -g serverless

# インストールの確認
$ serverless --version

使ってみる

やること

実際にデプロイまではしませんが、以下のコマンドを紹介。

  • GCPのcloud functionを、pythonのruntimeで実行するためのtemplateを作成する
  • deployをする
やってみる

templateとなるファイルを作成するには、以下のコマンドを打つことで対応できます。

$ serverless create --template google-python

このコマンドを打つと、次の4つのファイルが生成されます。

  • .gitignore
  • main.py
  • package.json
  • serverless.yml

あとは、ここのmain.pyに自分が書きたい関数を書いたり、serverless.ymlにfunctionの設定を書き足していくような感じで書くことができます。

依存関係をインストールするために、以下のコマンドをインストールします。

$ npm install

変更箇所を変更したら、deployは以下の通り。

$ serverless deploy

これだけで出来ちゃいます。簡単ですね。細かい設定などは、マニュアル見ながらやればできちゃうので、ここでは割愛します。

注意点

これをやるときの注意点ですが、事前にdeployment managerのAPIを有効化しておく必要があります。また、Service Accountを取得する必要があるなどの点も留意事項です。