Google Apps Script
Googleの各サービスをJavaScriptで自動操作する、サーバー不要の実行環境
分野「自動化・連携」:決まった作業を、人手なしで繰り返す。 この分野で最初に触るツールとして挙げている。 分野の役割とつながりは分野の解説へ。
別名:GAS、Apps Script
できること
- 定期的に処理を実行する :毎日/毎時この処理を自動で回したい
- スプレッドシートを読み書きする :シートを入出力に使いたい
- チャットやメールへ通知を送る :結果を Slack やメールで受け取りたい
- HTTP API を呼び出す :外部サービスからデータを取りたい
- イベントや Webhook を受けて処理を起動する :何かが起きたら即座に処理を走らせたい
Google Apps Script ができないこと
- 常時起動するプロセスの保持(WebSocket サーバー、常駐ワーカー)
- 6分を超える単一の処理
- 分未満の間隔での定期実行
- Google アカウントの外にあるデータベースへの直接接続(HTTP 経由か JDBC のみ)
- npm パッケージのそのまま利用(Node.js ではない)
制約
先頭の行が、このツールで最も先に当たる制約。値はすべて出典の一次情報で確認したもの。
| 項目 | 値 | 影響 | 出典 | 検証日 |
|---|---|---|---|---|
| 1実行あたりの実行時間上限 (主要制約) | 6分 / 実行(個人アカウント・Workspace とも) | 長時間処理は分割し、続きを時間主導トリガーで再開する設計が必要になる | developers.google.com | |
| トリガー実行の合計時間(1日) | 90分 / 日(個人アカウント)、6時間 / 日(Workspace) | 5分ごとに1分かかる処理を回すと個人アカウントでは1日の上限を超える。頻度と処理時間の積で見積もる | developers.google.com | |
| URL Fetch 呼び出し回数(1日) | 20,000回 / 日(個人アカウント)、100,000回 / 日(Workspace) | 外部 API を1行ごとに叩くループは、行数が数千を超えると1日で枯渇する。バッチ化する | developers.google.com | |
| メール送信の宛先数(1日) | 100件 / 日(個人アカウント)、1,500件 / 日(Workspace) | 通知の一斉送信には使えない。個人アカウントでは1日100宛先で止まる | developers.google.com | |
| 同時実行数 | 30 / ユーザー | フォーム送信トリガーなどが集中すると、31件目以降は失敗する | developers.google.com | |
| 時間主導トリガーの実行時刻の精度 | 「9時」と指定すると 9時〜10時の間のいずれかの時刻で実行される(日ごとには一定)。最短間隔は1分 | 「毎朝9:00ちょうど」は保証されない。時刻厳守が必要なら他基盤を使う | developers.google.com |
典型的な落とし穴
- スプレッドシートをセル単位で読み書きすると極端に遅い。範囲ごとに getValues / setValues でまとめる
- 実行ログが標準出力に出ない。Cloud Logging を有効にしないと失敗に気づけない
- スクリプトの所有者アカウントの権限で動く。所有者が組織を離れるとトリガーが止まる
コスト
- 課金モデル
- 無料
- 跳ねる条件
Google アカウントがあれば追加費用なし。ただし上記クォータが実質的な上限で、増枠の購入手段はない。Workspace 契約でクォータが上がる
- 出典
- developers.google.com 検証
代替手段と差分
| 代替 | 何が違うか |
|---|---|
| GitHub Actions | GitHub Actions は6時間まで1ジョブを実行でき npm も使えるが、Google サービスへの認証を自前で設定する必要がある。シートを触らない定期処理なら Actions のほうが制約が緩い |
| AWS Lambda | Lambda は実行時間15分・同時実行1,000で従量課金。Google 認証は自前。処理規模が GAS のクォータを超えたときの移行先 |
| n8n | n8n はノーコードで SaaS 連携を組める。分岐が複雑になる前に GAS へ、コードが不要なら n8n へ |
このツールを代替として挙げているページ: Airtable 、cron / systemd timer 、GitHub Actions 、n8n 、Zapier 、AWS Lambda
選定判断
Google サービス(スプレッドシート・Gmail・Drive・カレンダー)の中で完結する小規模な自動化では第一候補。処理時間6分・実行合計90分/日・外部呼び出し2万回/日のいずれかに触れた時点で他基盤への移行を検討する
Google が運用する実行環境で、スプレッドシート・Gmail・Drive などの API が認証なしで呼べる点が最大の利点である。言語は JavaScript(V8 ランタイム)だが Node.js ではなく、require や npm は使えない。
利用者が最初に当たるのは「実行時間6分」の壁で、次に当たるのが「トリガー実行合計90分/日」である。前者は処理の分割で回避できるが、後者は頻度と処理時間の積で決まるため、設計段階で見積もる必要がある。