こんにちは。
最近、Serverless Frameworkを使ってCloud functionを作る機会があったので、そちらについてまとめておきます。
Serverless Frameworkとは
ServerlessアプリケーションであるLambdaやCloud Functionを構成管理したりデプロイしたり、ローカルで試したりするためのツールです。
以下、公式サイト。多少できることが最新の物に対して足りなかったりしますが、メインの使い所に対しては、問題なく機能があるので、ドキュメント読んでやりたいことができるかを確認しておくほうが良きかなと思います。
学習コストも少なく対応することができるので、おすすめです。
使う前の準備
serverless frameworkは、node.jsで書かれています。なので、nodeをインストールしておきましょう。
個人的におすすめなのは、nvmでnodeのバージョンを管理しておくこと。以下は、Centosに入れたときのブログですが、macとかでもほとんど同じなので、参考になるかなと。
インストール
これでインストールすることができます。
# 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を取得する必要があるなどの点も留意事項です。