はじめに
社内で便利に使われていたGoogle Apps Script(GAS)のツールが、ある日突然動かなくなりました。
スクリプト自体は何も変更していないのに、なぜ……?
調べてみると、エラーの原因はどうやらアカウント周りにあることが判明しました。
この記事では、「GASのトリガー設定とGoogleアカウントの関係」について、実体験を元にリスクと対策をまとめます。
なぜGASは止まったのか?
原因:トリガー設定者のアカウント停止
そのGoogleアカウントが削除(または停止)されたからでした。
理由は色々あると思います。アカウント整理、トリガーを設定していた社員が退職など。
GASトリガーの仕組み
GASのトリガー(時間主導型やイベント主導型など)には、以下の重要な仕様があります。
トリガーは、それを作成したユーザーの権限で実行される
つまり、スクリプト自体が「共有ドライブ」や「チーム全員がアクセスできる場所」にあったとしても、トリガーを実行する主体はあくまで「設定ボタンを押した人のアカウント」です。
そのため、そのアカウントが無効化されると、紐付いていたトリガーも「実行権限なし」となり、沈黙してしまいます。
自分のアカウントでトリガー設定をするリスク
個人のアカウントで業務用のトリガーを設定することにはリスクがあります。
-
退職・異動時の停止リスク
- 今回のように、アカウント削除と同時にシステムが止まります。
-
エラー通知が届かない
- トリガーの失敗通知メールは、デフォルトでは「トリガー設定者」にしか届きません。担当者が休暇中だと、エラーに誰も気づけない可能性があります。
-
権限範囲の問題
- 個人のアカウントで実行されるため、その人が閲覧権限を持っているファイル等にしかアクセスできません。「Aさんなら動くけど、Bさんが設定すると動かない」という混乱を招きます。
-
発信元を追えなくなる
GASを使ってデータの送信などを行った場合、送信されたメール、シート、チャットツールからは誰のアカウントから飛んできたGASなのか判別できません
GASのトリガーを動かすアカウントはある程度絞り込み、ドキュメントなどに落とし込んで管理できる体制が望ましいです。
私は自分のアカウントでトリガー作成を大量に行っていました。誰かがGASを追いたいとき、万が一会社を去る時、確実に大変なことになるので事前に直そうと思います。
トリガーを別アカウントに「移行」することはできる?
ここで疑問になるのが、「トリガーの所有者を別の人にサクッと変更できないのか?」という点です。
結論:所有権の「譲渡」はできない
調べた限りだと、既存のトリガーの設定だけを別のアカウントに譲渡する機能は現在GASにはなさそうです。
対処法:作り直すしかない
別のアカウント(後任者など)で動かすためには、以下の手順を踏む必要があります。
-
旧アカウントのトリガーを削除する
- 重複実行を防ぐためです(アカウントが削除済みの場合は勝手に消えているか、無効になっています)。
-
https://script.google.com/home/triggers
こちらからマイトリガー一覧で確認可能です
- 新アカウントでGASエディタを開く
- 新アカウントでトリガーを「新規作成」する
アナログですが、これしか方法がありません。
安全なトリガー設定をしよう
業務で永続的にGASを動かす場合、以下の運用を推奨します。
1. 「システム用アカウント(Botアカウント)」を作成する
個人アカウントではなく、GAS実行専用のGoogleアカウント(例: system-bot@company.com)的なものを用意します。
ここでGASを動かすのが好ましいです。
- メリット: 退職の影響を受けない。
- 運用: このアカウントでログインし、トリガーを設定します。
2. エラー通知設定を見直す
トリガー設定画面の「通知」設定を確認しましょう。
通知先はアカウントのメールアドレスになりますが、システム用アカウントを使用している場合、そのメールをチームのチャット(SlackやTeams)に転送設定しておくと、メンバー全員が異変に気づけます。
まとめ
GASのトリガーは「設定した人」と運命を共にする。
ダッシュボード(script.google.com/home/triggers)でトリガー一覧を確認可能
所有権の譲渡はできない。「旧削除&新作成」で置き換えるしかない。
社内で長く使うツールなら、「個人アカウント」ではなく管理アカウントでトリガー設定して管理しましょう。