問題
GASのスクリプトを実行した際に、以下の画像のように「このスクリプトの OAuth ID は削除されました」というエラーが出る場合があります。対応方法としては、「新規でGASプロジェクトを作成して、スクリプトを移行する」となります。本記事はその手順を記したものです。
対応方法
手順
GAS新規プロジェクト作成からGCPプロジェクト設定まで
- 新規でGASプロジェクトを作成する
- 「リソース」→「Cloud Platform プロジェクト」から「このスクリプトが現在関連付けられているプロジェクト」のリンクをクリックしてGCPプロジェクトのコンソールに移動する
- GCPのダッシュボード上「プロジェクト情報」のカードにある「プロジェクト設定に移動」する
- 「移行」をクリックして「組織なし」から自身が所属している組織にプロジェクトを移行させる
- 必要に応じて最適なフォルダの配下に移動させる
※ GCPのプロジェクト管理を組織やフォルダで管理している場合を想定しています。
スクリプトの移行作業
- GCPのプロジェクトが任意の組織の元に移動できたのを確認
- 元のGASプロジェクトのスクリプトを新しいGASプロジェクトにコピペ
- 関数など動作確認して、問題なければ移行作業完了
権限設定
GCPプロジェクトの組織を移行させる作業時に権限で弾かれる場合が存在します。
組織なしのプロジェクトを任意の組織のもとへ移行させるには resourcemanager.projects.create
の権限が必要なので、設定を行ってからプロジェクトの移行作業を実施します。
備考
エラー原因と思われるもの
GASのプロジェクトは実は裏でGCPのプロジェクトと1対1で紐付いています。
(参考: Google Apps Scriptにおける「プロジェクト」の関係 )
このため、メンバーの退職等に伴いgoogleアカウントが削除されると、その担当者が作成したGCPプロジェクトが削除されるケースがあり、このようなエラーが発生します。
(この点については正確に理解していないので、認識違いがございましたらご指摘ください。)
GCPプロジェクトの移行理由
上述のように、GASで新規のプロジェクトを作成すると新規でGCPのプロジェクトが作成される。
このプロジェクトはデフォルトでは「組織なし」の野良プロジェクトになってしまうので、適切な管理のため組織に紐付ける必要があるのでプロジェクトの移行を行う。