はじめに
これまでGASを使い、いろいろ試してきました。
スプレッドシートとGASで締め切りの前のタスクをメールで通知させてみた
GoogleFormの回答をGoogleChatに通知したい
GoogleFormの回答が条件に当てはまる場合にメールで通知を送りたい
今回は、以前に作成したスクリプトからエラー通知のメールが届いたため、エラーの内容と通知の設定について確認していきたいと思います。
届いたエラーメール
エラーメールには、スクリプトの実行に関する情報が書いてありました。エラーの原因が特定しやすくなるので、詳細に記載されているのはありがたいです。
GASを確認する
プロジェクトの詳細
メールの "click_here" を押下でGASの「プロジェクトの詳細」画面に遷移します。
プロジェクトの詳細画面では、エラー率や実効数などを図でわかりやすく表示してくれています。
実行数:1,788
エラー率:0.06%
実行数とエラー率を使って計算してみたところ、エラーは7日間で1回だけのようでした。
エラー通知の設定
次にエラー通知の設定について確認してみます。
画面左のメニューから「トリガー」を押下で過去に設定したトリガーが一覧表示されます。
右側のペンのマークから「トリガーを編集」することができます。
ここで確認したいのが「エラー通知設定」です。
現在は「毎日通知を受け取る」が選択されています。
「毎日通知を受け取る」の場合、エラーが起きた次の日に前日に起こったエラーをまとめて通知してくれます。
個人的にはエラーが起きたらすぐに通知してほしいので設定を変更します。
「今すぐ通知を受け取る」を選択している場合と、エラーが起きる度、都度通知してくれます。
※トリガー設定の変更を行った方は忘れずに「保存」してください。
実行数の確認
次にエラーが起きた実行を確認します。
画面左のメニューから「実行数」を押下します。
今までの実行履歴が一覧で表示されます。
5分おきに実行する設定にしていたので実行履歴が多く、エラーが起きたのがどの実行時だったのか特定が難しいです。
エラーが起きた実行のみに絞り込んで表示させます。
画面上の「フィルタを追加」>「ステータス」を押下
メールの内容とあっているため、通知がきたのはこちらの実行についてで間違いなさそうです。
We're sorry, a server error occurred while reading from storage. Error code INTERNAL.
エラーメッセージは、ストレージの読み取り中にサーバーエラーが起きたという内容です。
エラーの原因
1度しかエラーが発生していないこと。
エラー発生日周辺でスクリプトの修正を行おうとしていた気がすること。
この2点から「スクリプトのオーナー以外のユーザーでスクリプトを実行しようとした」ことが今回のエラーの原因ではないかと推測しています。
参照:https://blog.ametsuyu.com/gas_err01/
まだ見たことはありませんが他にもいろいろなエラーを教えてくれるようです。
参照:https://qiita.com/yamabe08/items/01e0335a07704a0d6224
最後に
今回はエラーが単発的なものだったこともあり対策は行いませんでした。
今後、もし他のエラーが発生した際には通知を活用して対応していきたいです。
ご覧いただきありがとうございました。