公式URL
https://cloud.google.com/functions/?hl=ja
ざっくりどんなものか
- サーバーレスと呼ばれるもの
- クラウド上で、関数を呼び出したときのみ起動され、処理が終われば停止する
- 処理停止時には料金が発生しない
- 一定回数まで無料利用枠有り
- ファイル置き場として使われるGoogle Cloud Storageも、一応無料枠有り(参考:
Google Cloud Platform の無料階層)
- ファイル置き場として使われるGoogle Cloud Storageも、一応無料枠有り(参考:
- 起動しっぱなしのサーバーに比べて、処理が遅い(参考: Serverless環境は600倍以上遅い?)
- 常時アクセスされるサーバーでは低コスパっぽい?
- スケールが容易
- デフォルトでオートスケーリングに対応(参考: 【翻訳記事】Google Cloud Functions 対 AWS...)
- β版ではNode.jsのみサポート
- 頑張ればpython実行可能そう(参考: Google Cloud FunctionsでPythonを使ってみる)
他に覚える必要があるもの
クイックスタートによると
https://cloud.google.com/functions/docs/quickstart
以下が必要
- Google Cloud Platform (言わずもがな)
- Google Cloud SDK
- ローカル上で関数を作成したり、デプロイしたりするものらしい
- 取り合えず簡単に試してみるなら不要だった
- Google Cloud Storage (このストレージ上に保存されるので理解必要)
- 公式URL https://cloud.google.com/storage/?hl=ja
- 複雑に見える料金設定(参考: Google Cloud Storage の料金体系)
- バケットという独自概念(参考: バケット)
取り合えず動かせたところまでメモ
- Google Cloud Platformにアクセス
- 新規プロジェクト作成
- Google Cloud Storage をプロジェクトに追加
4. バケットを作成
4. 無料枠が良いならUSリージョンで - Cloud Functions をプロジェクトに追加
- 関数を作成
5. トリガー: HTTPトリガー
6. ソースコード: インラインエディタ(デフォルトのコードのまま)
7. ステージバケット: 3で作成したバケット指定 - デプロイ
- トリガ用の指定されたURLにてアクセス(index.jsで指定したrequest bodyメッセージを送信)
- 無事レスポンスが返る
今後の課題
- ローカルでのエミュレート
- レポジトリからソースコードをアップロードする方法検討
- 攻撃対策