Cloud Functionsメモ
関数の種類
HTTP関数
- REST APIとして公開される
- Pythonの場合、Flaskがサンプルとして使われているがBottleや任意のFWを使うことも可能である模様
- HTTP 関数 | Google Cloud Functions に関するドキュメント
バックグラウンド関数
- 関数(コード)をCloud Functionsに登録し、Cloud Pub/SubやCloud Storageからのトリガーで実行されるよう設定する
- バックグラウンド関数 | Google Cloud Functions に関するドキュメント
- Cloud Functions の呼び出し | Google Cloud Functions に関するドキュメント
制限事項
- デプロイ可能な関数の数 -- 1000(リージョン毎)
- デプロイ可能なコードのサイズ -- 非圧縮で500MB、圧縮された状態で100MB
- リクエストの最大サイズ -- 10MB
- レスポンスの最大サイズ -- 10MB
- 関数が利用可能なメモリサイズ -- 最大4GB
- 関数の実行時間 -- 最大540秒
- 割り当て | Google Cloud Functions に関するドキュメント
NOTE:
- 基本的に巨大なデータの処理は想定していない
- もしくはデータを分割して分散処理をしろという感じか
- バッチ処理めいた長時間の処理も想定していない
- シンプルにREST API及びGCP製品間をつなぐカスタムAPIに特化しているイメージ
デプロイ
- 基本的にはgcloudコマンドからデプロイ
- CircleCIのOrbも存在するが公式が出しているものではなさそう
- CircleCI Developer Hub - psn/cf-deploy
- Cloud Functions のデプロイ | Google Cloud Functions に関するドキュメント