generated at
Google Cloud Functions

GCP版のAWS Lambdaみたいなサービス

JavaScriptやPythonで書ける

トリガ
外部からのHTTP Request
指定したGCS bucketにファイルが現れた時
ファイルを読んでサムネイル画像を作ったりできる
などに起動できる

並列にたくさん起動し、関数を実行できる


関数を提供するinstanceが、リクエスト数に応じてたくさん起動する
instanceは使い回される
グローバル変数やtemp fileは残るし、こちらの指定できないタイミングで破棄されるので注意
serverlessだがサーバーである
「関数サーバー」と呼んだほうがわかりやすい。全くキャッチーではないがshokai
cloud functionのコンセプトは読んでおいた方がよい

nodejsの場合
デプロイすると、まずベタ書きした部分が実行される
そして外部からのfunction call毎に module.exports.関数名 = function () { } が実行される
関数呼び出し間でグローバル変数やtemp fileが共有される
processと違ってexitしないので、自分でしっかり後始末する
開きっぱなしのファイルディスクリプタとか気をつけて
関数呼び出しが多くなるとinstance数が増える
1つのinstanceが同時に複数のfunction callを処理する事はない
あまり変な事はせずに、 module.exports = function () { } の中に全部書いていくのが無難shokai

デフォルトではEditorというRoleで動いてしまう
GCP service accountの権限で動作させると管理しやすい