Google Apps Script(GAS)は、業務の効率化や自動化などに欠かせない非常に便利な無料のツールですが、実は使用するにあたって上限や制限があるのをご存知でしょうか?
実際に実装、実行してみるとエラーが出たりして、上限や制限の存在に気づいた人も多いのではないでしょうか。
GASには実行時間やトリガ実行の回数制限など、明確に上限・制限があります。それらの上限や制限を理解した上でソースコード全体の設計や実装を行うことが重要です。
今回は、そのようなGASの実行上限・制限について解説し、各項の最後にそれらをまとめた表を記載しています。是非参考にしてください。
GASの上限・制限について
GASは基本的に無料ですが、この無料アカウント以外にも有料のGoogle Workspaceアカウントがあり、そちらでGASを利用する場合は無料アカウントのものより制限が緩和されるようです。
しかしながら、どちらのアカウントにも上限・制限は存在しており、本記事ではそれらについて次項よりまとめていきます。
最新情報については、公式リファレンスページでもアナウンスされています。こちらもチェックしておくとよいでしょう。
GASの上限・制限について
GASの上限・制限については、大きく分けて以下のような制限が挙げられます。
- 実行時間制限
- 実行回数制限
- トリガーの制限
- サービスごとの制限
それぞれについて、詳しくみていきましょう。
実行時間制限の概要
GASの実行時間には実は制限があり、①1回ごとの実行時間制限、②24時間での実行時間の合計による制限、の2軸の制限が存在しています。
GASスクリプト実行時間(6分/1回)
GASのスクリプト1回あたりの実行時間には上限があります。最も多くの人が引っかかりやすい上限・制限だと思いますが、G Suite無料版でも、有料のGoogle Workspaceアカウントでも、1スクリプトの実行時間は「6分」という制限があります。
あまりにも長いコードを書きすぎたり、処理するスプレッドシートのデータ量が多かったり、データをfetch
してくる際に時間がかかる等の処理を書いていると、実行時間が6分をすぎてしまい、この制限に引っかかる可能性があります。
処理を工夫したり(例えば、他関数の呼び出しを共通化したり、G系サービスのアクセス回数を減らしたり、状況に応じて様々な工夫ができると思います)、もしスクリプトファイル自体を分けられるのであればそのように対処することでこの制限を回避することができます。
カスタム関数実行時間(30秒/1回)
カスタム関数=スプレッドシートのカスタム関数(GASのトップレベルに関数を記述すると、数式として呼び出すことが可能)にも1実行あたりの制限があります。また、ここでのカスタム関数はスクリプト内で作成している独自関数も該当します。
こちらは1実行あたり「30秒」という上限があり、こちらに関してもあまりにも時間がかかる処理を記載する場合はこの制限に引っかからないように注意が必要です。
機能 | 一般ユーザー(gmail) G Suite 無料版 | Google Workspace アカウント |
---|---|---|
スクリプトランタイム | 6分/実行 | 6分/実行 |
カスタム関数ランタイム | 30秒/実行 | 30秒/実行 |
ユーザーあたりの同時実行数 | 30/ユーザー | 30/ユーザー |
トリガー制限(24時間の実行時間上限)
24時間(1日)のGASの合計実行時間に関しても制限があります。無料アカウントの場合、24時間の実行合計時間上限は「90分」となります。思ったより短いと思った人が多いのではないでしょうか。
対して、有料のGoogle Workspaceアカウントでの制限は多少緩和されます。こちらは無料アカウントの4倍となる「6時間」が24時間における合計実行時間の上限になります。
また、トリガー自体も、1ユーザーまたは1スクリプトあたり20の上限が存在しています。
機能 | 一般ユーザー(gmail) G Suite 無料版 | Google Workspace アカウント |
---|---|---|
トリガーの合計実行時間 | 90分/日 | 6時間/日 |
トリガー作成数 | 20/ユーザー/スクリプト | 20/ユーザー/スクリプト |
サービスごとの制限
G系サービスごとにも、それぞれ制限がある場合があります。公式リファレンスに記載されているものを参考に、いくつか分類してご紹介します。主にGoogleカレンダー、Gmail、MapServiceに制限が存在しています。
Google カレンダーの制限
Googleカレンダーと連携する際も、上限・制限があります。
カレンダーの予定の作成上限は無料アカウントの場合、1日あたり「5,000」、有料Google Workspaceアカウントの場合、「10,000」となります。また、連絡先の作成にも1日あたりの上限があり、無料アカウントの場合、1日あたり「1,000人」、有料Google Workspaceアカウントの場合、「2,000人」となります。
機能 | 一般ユーザー(gmail) G Suite 無料版 | Google Workspace アカウント |
---|---|---|
カレンダーの予定の作成数 | 5,000/日 | 10,000/日 |
連絡先の作成数 | 1,000/日 | 2,000/日 |
Gmailの制限
Gmailと連携する際も、上限・制限があります。
Gmailでの上限や制限は多数存在しており、メールの読み書き・添付ファイルのサイズなどに制限があるようです。下記の表にそれらをまとめてみました。
機能 | 一般ユーザー(gmail) G Suite 無料版 | Google Workspace アカウント |
---|---|---|
1 日あたりのメール受信者数 | 100/日 | 1,500/日 |
ドメイン内の1日あたりのメール受信者数 | 100/日 | 2,000/日 |
メールの読み取り/書き込み(送信を除く) | 20,000/日 | 50,000/日 |
グループの読み取り回数 | 2,000/日 | 10,000/日 |
メール添付ファイル数 | 250個/通 | 250個/通 |
メール本文のサイズ | 200 KB/メッセージ | 400 KB/メッセージ |
メッセージごとの電子メール受信者数 | 50/メッセージ | 50/メッセージ |
メールの添付ファイルの総サイズ | 25 MB/メッセージ | 25 MB/メッセージ |
Google Mapの制限
Map Service(Google Map)ではMapのクエリの実行回数に上限・制限が存在しています。それぞれ、以下の表にまとめてみました。
機能 | 一般ユーザー(gmail) G Suite 無料版 | Google Workspace アカウント |
---|---|---|
静的マップのレンダリング | 1,000/日 | 10,000/日 |
Google マップの方向のクエリ | 1,000/日 | 10,000/日 |
Google マップのジオコードの呼び出し回数 | 1,000/日 | 10,000/日 |
Google マップの高度サンプルのクエリ | 1,000/日 | 10,000/日 |
URL取得に関する制限
GASを書く際に、外部URLからデータを取得するといった場面が多くあるかと思います。その際にももちろん上限・制限が存在しています。それらの制限を、以下の表にまとめてみました。
機能 | 一般ユーザー(gmail) G Suite 無料版 | Google Workspace アカウント |
---|---|---|
URL取得の呼び出し | 50MB/呼び出し | 50MB/呼び出し |
URL取得ヘッダー | 100/呼び出し | 100/呼び出し |
URL取得ヘッダーのサイズ | 8KB/呼び出し | 8KB/呼び出し |
URL取得のPOSTサイズ | 50MB/呼び出し | 50MB/呼び出し |
URL取得URLの長さ | 2KB/呼び出し | 2KB/呼び出し |
その他の上限・制限
その他の上限・制限に関しては、以下のようなものが挙げられます。
機能 | 一般ユーザー(gmail) G Suite 無料版 | Google Workspace アカウント |
---|---|---|
JDBC接続回数 | 10,000/日 | 50,000/日 |
JDBC接続の失敗回数 | 100/日 | 500/日 |
プレゼンテーションの作成数 | 250/日 | 1,500/日 |
プロパティの読み取り/書き込み | 50,000/日 | 500,000/日 |
スライドの作成数 | 250/日 | 1,500/日 |
スプレッドシートの作成数 | 250/日 | 3,200/日 |
翻訳の呼び出し回数 | 5,000/日 | 20,000/日 |
Apps Scriptプロジェクトの作成数 | 50/日 | 50/日 |
バージョン | 200個/1 スクリプト | 200個/1 スクリプト |
まとめ
今回は、GASの実行上限や制限についてまとめてみました。いかがだったでしょうか。
意外とすぐに上限に引っかかったりするものもあるので、特に実行時間上限やURL取得の上限については一度目を通して、頭の片隅に入れておくほうが良さそうです。これらの上限や制限を踏まえた上で、エラーのないより効率的なスクリプトを設計・実装していきましょう!
コメント