GoogleAppsScriptの動作制限

佐野

佐野 2014年3月5日

GoogleAppsScriptには、動作の制限があり、
「GmailApp」や「SpreadsheetApp」などでオブジェクトを作成し、
各アプリにアクセスを繰り返していると、
正常に動作が行えなくなる場合があります。

たとえば、トリガー設定で自動動作するスクリプトを1分間隔に設定し、
常時Gmailを見張るようなスクリプトを組むと、やがて制限がかけられ、
その日にスクリプトでGmailを動かすという事ができなくなる事もあります。

制限は、「Gmail.com」の通常ユーザー版、ドメイン取得の無料版、
「Google Apps for Business」のプランにより異なり、
その詳細は、以下のサイトに掲載されています。
https://docs.google.com/a/macros/taf-jp.com/dashboard

この表の通りだと、Gmailでメールの管理を行うとすれば、
「GMail Operations」と思われるので、
1日に2万回のアクセスなら可能という意味かもしれません。
おそらくは、「GmailApp」によりオブジェクトを作成し、
そこから関数により、Gmailを操作する度にカウントされているとも考えられます。
細かくはまだ調査していないので、推測の段階ですが。

もしこの制限を超えた場合、たぶんこのようなエラーが来ると思います。
「1 日にサービス gmail を実行した回数が多すぎます。」
このメッセージが、エラーをまとめたメールに記載されたり、
もし制限にかかっている最中なら、
スクリプト上で実行ボタンをクリックした際にも表示されるはずです。
こうなってしまえば、本当に1日待つしかないでしょう。
制限の解除は、調査はしていませんが、制限された時間より24時間後か、
協定世界時では午前0時である、日本時間の午前9時といったところでしょうか。

そして、この制限がかけられるのも、
たぶんアカウント単位で行われているものと思われます。

表を観る限り、Gmail以外に注意すべき事と言えば、
「トリガーの合計実行時間」でしょう。
スクリプトは基本的に、1回の動作なら一瞬で終わる事は多いですが、
多数のドライブのファイルやメールなどに接続し、
それらの自動整理を行うようなスクリプトの場合、
1回にかかる時間も長くなってきます。
1回の起動時間が長すぎても、その時点でエラーになり中断はされますが、
それをクリアしても、最終的に1日の稼働時間が長くなってしまえば、
途中で停止してしまうという事もあり得ます。
これらの事も考えて、制作・運用共に配慮する必要はあるでしょう。