前回の振り返り
【第4回】ではGASとclaspを紹介した。今回は「GASの次のステップ」としてCloudflare Workersの話。
GASの限界を感じた瞬間
GASは素晴らしいが、使い込むと壁にぶつかる。
- 実行時間の制限:1回の実行が6分まで。重い処理が途中で止まる
- 同時実行の制限:複数ユーザーが同時にアクセスすると遅くなる
- レスポンス速度:WebAppのコールドスタートが遅い(数秒かかることも)
影武者システムの利用者が増えてきた時、この制限が現実の問題になった。
Cloudflare Workersとは ― 超ざっくり説明
Workers = 世界中のサーバーで動くプログラム実行環境。
Cloudflareは世界300都市以上にサーバーを持っていて、ユーザーに一番近いサーバーでプログラムが動く。だから速い。そしてサーバーの管理は一切不要(サーバーレス)。
この無料枠が本当に太い。1日10万リクエストまで無料。個人開発なら余裕で収まる。
wranglerとは ― Workersのデプロイツール
wrangler = Cloudflare Workersをデプロイ(公開)するためのCLIツール。
claspがGASのデプロイツールだったように、wranglerはWorkersのデプロイツール。PCで書いたコードをCloudflareのサーバーに送る役割だ。
インストール方法
wranglerもnpmで入る。
npm install -g wrangler
初回はCloudflareアカウントでログイン:
wrangler login
# ブラウザが開くので、Cloudflareアカウントで許可する
自分の使い方 ― deploy一発で世界中に公開
よく使うコマンドは2つ。
# Workersをデプロイ(公開)する
wrangler deploy
# 開発中にローカルで動かす
wrangler dev
wrangler deploy を実行すると、数秒で世界300都市以上のサーバーにコードが配信される。これは初めてやった時に本当に感動した。
実行6分制限。コールドスタートで数秒待ち。同時アクセスが不安。clasp pushのあとGAS側でデプロイ更新が必要。
実行時間の心配なし。レスポンスはミリ秒単位。wrangler deploy 一発で全世界に公開。
影武者システムでは、APIサーバーの部分をGASからWorkersに移行した。GASは完全に捨てたわけではなく、Googleサービスとの連携部分(スプレッドシート操作やメール送信)は今もGASが担当している。適材適所だ。
次回予告
次回はオンライン決済を扱うStripe CLIを紹介する。お金を扱うのは怖いが、テスト環境が充実しているおかげで安心して開発できた話。
第2回:Node.js & npm
第3回:Git
第4回:Google Apps Script & clasp
第5回:Cloudflare Workers & wrangler
第6回:Stripe CLI
第7回:Python & 便利ライブラリ
第8回:まとめ ― 全体像と選び方
家庭教師の勤怠管理、まだ手作業でやってませんか?
影武者システムを見てみる