GoogleAppsScriptでよくはまる制約まとめ

投稿日 2018/12/19 更新日 2020/09/30

無料のGoogleアカウントの制約をまとめます。

基本

項目制約
スクリプト実行時間360秒
カスタム関数実行時間30秒
同時実行30
Logger.log関数の最大文字数8,192文字

※スクリプト実行時間で6分(360秒)以上実行は、「実行を分割」+「実行内容を保持」で実現可能です。
 「実行を分割」例:トリガーで複数回実行する
 「実行内容を保持」例:プロパティストア/キャッシュ/スプレッドシート
※カスタム関数は、スプレッドシートのセル等で実行する関数です。
※Logger.log関数の最大文字数を越えた文字は、表示されません。
※1日単位の制約は、24時間毎にリセットされます。
 リセットタイミングはユーザ毎で異なります。
※G Suiteなどの有料版では、制約がもう少しゆるくなります。

キャッシュ

項目制約
最大保存時間6時間
キーの最大長250文字
データの最大サイズ100KB

※最大保存時間は、6時間(21600秒)です。
※データ最大量は、キー毎の最大量です。
※100KBは、半角文字で10万文字です。

プロパティストア

項目制約
プロパティ読み書き50,000/日
プロパティサイズ9KB
プロパティ合計サイズ500KB

※プロパティ合計サイズは、プロパティストア毎の制約です。

UrlFetch

項目制約
フェッチ回数20,000/日
受信データサイズ50MB/call
ヘッダー数100/call
ヘッダーサイズ8kB/call
POSTサイズ50MB/call
URLの長さ2kB/call

トリガー

項目制約
トリガー登録数20/日
トリガー実行時間の合計90分/日

※トリガー実行時間の合計は、Utilities.sleepの時間を含みます。
※下記のウェブアプリで過去24時間のトリガー実行時間を確認できます。
 GoogleAppsScriptの1日トリガー実行時間チェッカー

トリガー間隔毎の最大数

トリガー間隔実行時間フェッチ回数メール読込プロパティ読書
1分間3.75秒131334
5分間18.75秒6969173
10分間37.50秒138138347
15分間56.25秒208208520
30分間112.50秒4164161,042
1時間3.75分8338332,083
2時間7.50分1,6661,6664,166
4時間15.00分3,3333,3338,333
6時間22.50分5,0005,00012,500
8時間30.00分6,6666,66616,666
12時間45.00分10,00010,00025,000
24時間90.00分20,00020,00050,000

※プロパティ読み書きは、読み込みと書き込み両方行うと2回としてカウントされます。

Gmail

項目制約
メール受信者数100/日
メール読み書き200,000/日
メール受信者数50/msg
メール本文サイズ200kB/msg
添付ファイル250/msg
添付ファイル合計サイズ25MB/msg

※メール受信者数とは、宛先(TO/CC/BCC)の合計数です。
GmailApp.search関数で最大取得数を省略した場合、最大500件取得します。

ドライブ

項目制約
容量15GB
ファイルの変更回数2,000回

※GoogleDoc(ドキュメントやスプレッドシートなど)は、容量の制約に含まれません。
 そのため、GoogleDocのドキュメント形式であれば、無限にデータを保存できます。

GoogleDoc

項目制約
新規ドキュメントの作成250/日
新規スプレッドシートの作成250/日
新規プレゼンテーションの作成250/日
ドキュメントの最大文字数1,020,000文字
ドキュメントの最大サイズ50MB
スプレッドシートの最大セル数5,000,000セル
スプレッドシートのセル最大文字数50,000文字

※ドキュメントの最大文字数は、半角での文字数です。
※ドキュメントの最大サイズは、修飾を含むGoogleドキュメント形式でのサイズです。
※スプレッドシートの列数・行数の制約はありません。
※スプレッドシートの最大セル数は、1スプレッドシート単位(1シート単位ではない)
※スプレッドシートの最大セル数を超える前に、「ドキュメントを変更できません。サイズが大きすぎる可能性があります」エラーが発生することがあります。

スプレッドシートの最大シート数

スプレッドシートは、理論上5,000,000個のシートが作成可能です。ただし、通常のシート作成では、1,000行×26列=26,000セルを消費するため、5,000,000÷26,000≒192シートが最大シート数となります。

※空白のセル(列や行)を削除することで消費セル数を削減できます

その他

項目制約
Googleカレンダーイベントの作成5,000/日
Google連絡先の作成1,000/日
Googleグループの読み込み2,000/日
JDBCの接続数10,000/日
JDBCの接続失敗数100/日

※Googleグループとは、GroupsAppで取得できるグループを指します。
※JDBCとは、Java Database Connectivityの略でデータベースと接続するAPIです。

エラー

  • 起動時間の最大値を超えました
    • 1回の処理時間(360秒または30秒)を超えると発生する
  • サービスで 1 日に使用しているコンピュータ時間が長すぎます
    • 一日のトリガーでの実行時間の合計がランタイム全体のトリガー合計時間(90分)を超えると発生する
  • メモリの上限を超えました
    • 実行中のスクリプトが使用メモリ上限を超えると発生する
  • ドキュメントを変更できません。サイズが大きすぎる可能性があります
    • 巨大なドキュメントを操作しようとすると発生する
    • 巨大なスプレッドシートなどを操作しようとすると発生する

参考

コメント

Unknown さんのコメント...

最大シート数
誤:1,000行×26列=2,600セル
正:1,000行×26列=26,000セル

toshi さんのコメント...

ご指摘ありがとうございます。
訂正しました。