Google Apps Scriptの無料制限メモ
Google Apps Scriptの無料制限メモ
Google Apps Scriptの無料制限のメモ. 以下のページにまとめられている.
Quotas for Google Services | Apps Script | Google Developers
制限一覧
| 操作 | 一般ユーザー(gmail.com) |
|---|---|
| カレンダーの予定の作成 | 5000 個/日 |
| 連絡先の作成 | 1000 個/日 |
| ドキュメントの作成 | 250 個/日 |
| 1 日あたりのメール受信者 | 100 個/日 |
| Gmail の読み取りと書き込み(送信以外) | 20000 個/日 |
| グループの読み取り | 2000 個/日 |
| JDBC 接続 | 10000 個/日 |
| JDBC 接続の失敗 | 100 個/日 |
| プレゼンテーションの作成 | 250 個/日 |
| プロパティの取得または設定 | 50000 個/日 |
| SOAP の呼び出し | 5000 個/日 |
| スプレッドシートの作成 | 250 個/日 |
| トリガーの合計実行時間 | 1 時間/日 |
| URLFetch の呼び出し | 20000 個/日 |
| URLFetch のデータの受信 | 100 MB/日 |
ここで,ネックになりやすいのは, URLFetch関連とトリガーの合計実行時間になると思うので個別にまとめる.
URL Fetch関連
URL Fetchでは,HTTP Requestの操作ができる.つまり,スクレイピングができる.
呼び出し回数の制限: 無料アカウントでは,URLFetch の呼び出し回数が決まっており,20000 個/日となっている.なので,1日あたりHTMLを20000ページまでアクセスできる.
データ容量の制限: 1日あたり100MBまでとなっている.なので,もし上限20000ページまでアクセスするならば,平均100MB/20000 = 0.005MB = 5kB以下にしなければならない.
各ページに対しての平均容量の上限を計算すると,
| 1日にアクセスするページ | 平均容量の上限 |
|---|---|
| 5 | 20[MB] |
| 10 | 10[MB] |
| 50 | 2[MB] |
| 100 | 1[MB] |
| 500 | 200[kB] |
| 1000 | 100[kB] |
| 5000 | 20[kB] |
| 10000 | 10[kB] |
| 15000 | 6.67[kB] |
| 20000 | 5[kB] |
トリガーの合計実行時間
Google Apps Scriptではトリガーを設定して,cronのように1分おき・10分おきなどに起動できる.
しかし,制限により,トリガーでのGoogle Apps Scriptの1日の実行時間は1時間と決まっている.1時間を超えた場合,その日のトリガーでの起動は無くなる.
例えば,1時間に1回起動するならば, 平均実行時間は60[分]/24[回/日]=2.5[分/回]以内にしなければならない.
このことを踏まえて,トリガー時間に対しての平均実行時間の上限を計算してみる.
| トリガー間隔 | 1回あたりの平均実行時間の上限 |
|---|---|
| 1分おきに1回 | 2.5[s] |
| 5分 | 12.5[s] |
| 10分 | 25[s] |
| 15分 | 37.5[s] |
| 30分 | 1.25[分] |
| 1h | 2.5[分] |
| 6h | 15[分] |
| 12h | 30[分] |
| 1日(24h) | 1[h] |
スクレイピングにおいて設定しそうな10分おきのトリガーを設定した場合, 1回あたりの実行時間を25[s]以内にしなければならないので注意.
実行時間の確認
スクリプトエディタから「表示 > 実行トランスクリプト」から実行すると, ループなどの処理ごとの実行時間を確認できる.