Cloud functionsへの移行
VPSでFlaskで処理してたものを Cloud Functionsに移行した。 理由
VPSの管理が大変になってきた。
セキュリティのアップデートも後手になってたりした。
構成
単純な問い合わせ(以前は要件がいろいろあったが、なくなった)で、
リクエストデータを永続化して、メールを投げるだけ。
datastoreに保存できない時点で、エラーを返す。
メール送信時にエラーがでたら、個別対応。
メール未達は、SendGridのbouncesリストをAPIからspreadsheetに出しておいて、対応してもらう。 datastore保存で、連番がほしかったけど、
分散カウンタは簡単なコードでいれようとおもったけど、初回だったので、次の機会にした。 最初は、Pyhtonで書いたけど、コールドスタート時にちょっと遅い?と言われたので、
Goで書いた。
httpハンドラーの関数をかくだけなので、単純
エラーは、全部 http.Error(w... みたいに返す。
で様子を見る。
課題
たぶん、セキュリティ対策は積み増ししていく必要はある。 cloud functions内で datastoreにmutationを実行する場合に可能か???
deployと githubのmaster の commitを紐付けてないので、どのコミットでdeployしたかが、、gitのtagをつけておけば良い?
運用になったら branchを切って、masterでdeployだろうけど。
95%で1秒以内に返せてるので、よいけど、実行時間が長くなれば、
cloud functionsは 2nd generationがあるけど、今回 1st genだったので、次回は2nd or Cloud Run