すべての Apps Script プロジェクトでは、Google Cloud を使用して承認、拡張サービス、その他の詳細を管理します。これらの設定を構成して管理するため、すべての Apps Script プロジェクトには Google Cloud プロジェクトが関連付けられています。スクリプト プロジェクトでは、Apps Script が自動的に作成するデフォルト プロジェクトまたは、自分で作成する標準 プロジェクトを使用できます。通常、デフォルト プロジェクトは日常的なスクリプトやシンプルなスクリプトに適していますが、複雑なアプリケーション、商用品質のアプリケーション、公開を予定しているアプリケーションには、標準プロジェクトを使用する必要があります。
デフォルト プロジェクトから標準プロジェクトに切り替えることはいつでもできますが、デフォルト プロジェクトに戻すことはできません。スクリプトで使用する Cloud プロジェクトは、開発の早い段階で選択することをおすすめします。後で切り替えると、ユーザーに再認証を求めるなど、複雑になる可能性があります。
デフォルトの Cloud プロジェクト
Apps Script プロジェクトを作成すると、バックグラウンドで動作するデフォルトの Cloud プロジェクトが作成されます。
- ほとんどのスクリプトでは、このデフォルト プロジェクトを表示または調整する必要はありません。Google Cloud で必要となるインタラクションは Apps Script によって処理されます。たとえば、Apps Script エディタで高度なサービスを有効にすると、スクリプト プロジェクトを保存するときに、デフォルトの Cloud プロジェクトで高度なサービスが有効になります。
- スクリプトによっては、Google Cloud コンソールで操作する必要があります。このような場合は、代わりに標準の Cloud プロジェクトを使用する必要があります。たとえば、Google Cloud コンソールで Google Cloud ログを表示するには、スクリプトで標準プロジェクトを使用する必要があります。
デフォルトでは、Cloud プロジェクトには、デフォルト プロジェクトのオーナーとして機能する Google サービス アカウントという 1 つのエントリを含む Identity and Access Management(IAM)ポリシーがあります。Google サービス アカウントは appsdev-apps-dev-script-auth@system.gserviceaccount.com
です。
デフォルトの Cloud プロジェクトを表示または更新する
ほとんどのユーザーは、Google Cloud コンソールでデフォルト プロジェクトの検索、表示、編集を直接行うことはできません。管理者の方は、デフォルトの Google Cloud プロジェクトを表示するをご覧ください。
2019 年 4 月 8 日より前にスクリプト プロジェクトを作成した場合は、Google Cloud コンソールでアクセスできるデフォルト プロジェクトを使用できます。デフォルト プロジェクトにアクセスするには、スクリプト プロジェクトの設定に移動し、プロジェクト番号をクリックします。
デフォルトの Cloud プロジェクトを削除する
管理者は、標準の Cloud プロジェクトと同様にデフォルトの Cloud プロジェクトを削除できます。Apps Script Cloud プロジェクトを削除するをご覧ください。
管理者以外のユーザーは、デフォルトのプロジェクトを削除できません。ただし、次のシナリオでは、デフォルト プロジェクトが削除されます。
- スクリプト プロジェクトを削除するか、標準プロジェクトを使用するように切り替えると、Apps Script では、スクリプトにアタッチされているデフォルトのプロジェクトが、プロジェクト内の設定や情報とともに削除されます。
- スクリプトが 180 日以上実行されない場合、Apps Script は関連するデフォルト プロジェクトを削除します。Apps Script がデフォルト プロジェクトを削除した後にスクリプトが実行されると、スクリプト用にプロジェクトが作成されます。
標準の Cloud プロジェクト
プロジェクトを手動で構成する必要がある場合を除き、ほとんどのスクリプト プロジェクトにはデフォルトの Cloud プロジェクトが最適です。このような場合は、スクリプト プロジェクトを切り替えて標準プロジェクトを使用する必要があります。
以降のセクションでは、Apps Script で標準プロジェクトが必要な場合、そのようなプロジェクトのプロパティ、およびそれらで行う一般的なタスクについて説明します。次のタスクは、標準プロジェクトでのみ実行できます。
Apps Script が標準の Cloud プロジェクトを必要とする場合
次の状況では、標準プロジェクトを使用する必要があります。
- Google Workspace Marketplace でスクリプト プロジェクトをアドオンとして公開する。
- スクリプト プロジェクトの OAuth クライアントを確認する。
- Apps Script API の
scripts.run
メソッドを使用して、スクリプト プロジェクトの関数を実行する必要があるアプリケーションがある場合。 - Google Cloud コンソールでスクリプト プロジェクトの Google Cloud ログを表示する。Google Cloud コンソールには、ログのフィルタリングと表示のためのツールがさらに用意されており、Apps Script ダッシュボードで提供される簡素化されたビューよりも便利です。
- Error Reporting を使用してスクリプト プロジェクトのエラーレポートを表示する。
- ファイル開くダイアログを作成するには。
- プロジェクトの Google Cloud 設定を手動で制御する必要がある場合。
標準の Cloud プロジェクトのプロパティ
標準プロジェクトには次のプロパティがあります。
- プロジェクトのすべての Google Cloud 設定には、Google Cloud コンソールから直接アクセスできます。これにより、API を有効にしたり、認可認証情報を調整したり、その他の詳細を構成したりできます。
- スクリプト プロジェクトを削除するか、別の標準プロジェクトを使用するように切り替えても、元の標準プロジェクトは残り、再利用できます。
- スクリプト プロジェクトで拡張サービスを有効にする場合は、標準プロジェクトで対応する API を手動で有効にする必要があります。
- 複数のスクリプト プロジェクトや他のアプリが同じ標準プロジェクトを共有できます。スクリプト プロジェクトを Google Workspace Marketplace にアドオンとして公開する場合は、独自の標準プロジェクトが必要です。公開済みのアプリは、Cloud プロジェクトを他のアプリと共有できません。
- Apps Script API の
scripts.run
メソッドを使用して、別のアプリからスクリプト プロジェクトの関数を実行する場合は、スクリプト プロジェクトと呼び出し元のアプリケーションが同じ標準プロジェクトを共有している必要があります。 - Apps Script がユーザーに標準プロジェクトを使用するスクリプトの承認を求める場合、スクリプトの識別には Cloud プロジェクト名が使用されます(スクリプトのプロジェクト名ではありません)。そのため、適切な Cloud プロジェクト名を設定してください。
標準の Cloud プロジェクトにアクセスする
スクリプト プロジェクトに関連付けられた標準プロジェクトにアクセスする手順は次のとおりです。
- Apps Script プロジェクトを開きます。
- 左側の [プロジェクト設定] をクリックします。
- [Google Cloud Platform(GCP)プロジェクト] でプロジェクト番号をクリックします。
標準プロジェクトは、Google Cloud コンソールの [リソースの管理] ページで直接確認することもできます。
標準の Cloud プロジェクトで API を有効にする
多くの場合、Apps Script アプリケーションは別の Google API にアクセスする必要があります。これを行うには、対応する Cloud プロジェクトで API を有効にする必要があります。API を有効にするには、次の操作を行います。
- Cloud プロジェクトを開きます。
- メニュー > [API とサービス] をクリックします。
- [API とサービスの有効化] をクリックします。
- 検索ボックスに有効にする API を入力して、Enter キーを押します。
- 検索結果から API をクリックし、[有効にする] をクリックして、この Cloud プロジェクトの API を有効にします。
Google API または Google Cloud の利用規約に同意するよう求められる場合があります。利用規約に同意する前に、利用規約をよくお読みください。
アプリケーションによっては、API とサービス ダッシュボードで API を選択して構成することも必要になる場合があります。
標準の Cloud プロジェクトの ID と番号を確認する
すべての Cloud プロジェクトには、プロジェクト名、プロジェクト ID、プロジェクト番号があります。サービスの構成や他のタスクの完了に、これらの ID が必要になることがあります。
標準プロジェクトの ID と番号を確認する手順は次のとおりです。
- Cloud プロジェクトを開きます。
- 右上のその他アイコン > [プロジェクトの設定] をクリックします。
- 表示された [設定] パネルで、プロジェクト名、プロジェクト ID、プロジェクト番号を確認します。プロジェクト番号は数字のみで構成されますが、プロジェクト ID は英数字です。認証プロンプト中にユーザーに表示されるプロジェクト名を編集できます。
Google Cloud コンソールで Google Cloud ログとエラー レポートを表示する
スクリプト プロジェクトに Google Cloud ロギングまたはエラー レポートを使用している場合は、次の手順で Google Cloud コンソールでログとレポートを表示できます。
- Cloud プロジェクトを開きます。
- メニュー をクリックします。
- [オペレーション] セクションまで下にスクロールし、[ロギング] > [ログ エクスプローラ] をクリックします。
- エラーレポートを表示するには、[オペレーション] セクションまで下にスクロールし、[エラー レポート] をクリックします。エラー レポートの設定を求めるメッセージが表示された場合は、スクリプト プロジェクトでまだ例外がログに記録されていないことを意味します。
OAuth 同意画面を完了する
OAuth を必要とするサービスを使用する場合、Google はユーザーにそのサービスの承認を求めます。OAuth 同意画面の設定では、Google がユーザーに表示する情報の一部(アプリ名や利用規約の URL など)を設定できます。
デフォルトの Cloud プロジェクトでは、Apps Script プロジェクトの詳細から同意画面が自動的に作成されます。これらの設定は調整できません。標準の Cloud プロジェクトでは、この情報をカスタマイズできます。スクリプトの同意画面を構成するには、次の操作を行います。
- Cloud プロジェクトを開きます。
- メニュー > [API とサービス] > [認証情報] をクリックします。
- [同意画面を構成] をクリックします。
- 同意画面ワークフローの各セクションに入力します。
- ワークフローの各ステージで変更を記録するには、[保存して次へ] をクリックします。
OAuth 認証情報を作成する
Apps Script では通常、スクリプトが使用するサービス用に OAuth を設定します。アプリによっては、追加の OAuth 認証情報(クライアント ID とクライアント シークレット)を作成する必要があります。これは標準プロジェクトでのみ可能です
スクリプト プロジェクトのクライアント ID とクライアント シークレットを作成するには、次の操作を行います。
- Cloud プロジェクトを開きます。
- メニュー > [API とサービス] > [認証情報] をクリックします。
- [認証情報を作成] > [OAuth クライアント ID] をクリックします。
- [アプリケーション タイプ] でアプリケーション タイプを選択し、必要に応じて結果のフォームに記入します。完了したら、[作成] をクリックします。
- 表示されたダイアログで、[JSON をダウンロード] をクリックします。このファイルを使用して OAuth を構成できます。
標準の Cloud プロジェクトにオーナーを追加する
標準プロジェクトには、オーナーや他のロールを追加できます。プロジェクトで共同作業を行っている場合は、チームの誰かがスクリプト プロジェクトの Google Cloud 設定に常にアクセスできるようになります。
標準プロジェクトにオーナーや他のロールを追加するには、次の操作を行います。以下の変更を行うには、プロジェクトの編集権限が必要です。
- 共同編集者を決定します。既存の Google グループを作成するか、既存の Google グループを使用することをおすすめします。コラボレータ リストでドメインを指定して、そのドメイン内のすべてのユーザーを含めることもできます。
- スクリプトの Cloud プロジェクトを開きます。
- メニュー > [IAM と管理] > [IAM] をクリックします。
- 上部にある [追加] をクリックします。
- 画面上の手順に沿って、1 人以上の新しいメンバーとそのロールを Cloud プロジェクトに追加します。個々のメールアドレス、Google グループ、ドメインを新しいメンバーとして追加できます。
- [保存] をクリックします。
複数のスクリプトを 1 つの Cloud プロジェクトにグループ化する
複数の Apps Script プロジェクトで同じ標準 Cloud プロジェクトを共有できます。これを行うには、標準プロジェクトを作成し、各スクリプト プロジェクトを切り替えて使用します。デフォルト プロジェクトでこの操作を行うことはできません。
別の標準の Cloud プロジェクトを使用する
別の標準 Cloud プロジェクトを使用するようにスクリプト プロジェクトを切り替えることができます。スクリプトで Cloud プロジェクトを手動で構成する必要がある場合は、デフォルト プロジェクトから標準プロジェクトに切り替える必要があります。標準プロジェクトを使用する必要がある場合の詳細については、標準 Cloud プロジェクトをご覧ください。
別の標準 Cloud プロジェクトに切り替えた場合の影響
スクリプトをデフォルト プロジェクトから別の標準プロジェクトに切り替えると、次のような影響があります。
- スクリプトの高度なサービスを有効にした場合は、新しい Cloud プロジェクトで対応する API を有効にする必要があります。以前の Cloud プロジェクトの高度なサービスに関連付けられたデータはすべて失われます。Cloud プロジェクトで API を有効にする方法については、Google Workspace API を有効にするをご覧ください。
- スクリプトで組み込みの Google ドライブ サービスを使用する場合は、標準の Cloud プロジェクトで Drive API を有効にする必要があります。
標準の Cloud プロジェクトで、Drive API を有効にします。
- 以前にスクリプトを承認したすべてのユーザーは、再度承認する必要があります。ほとんどの場合、新しいプロジェクトに関連付けられているアプリを以前に承認したすべてのユーザーも、再承認する必要があります。
- スクリプトが Google Workspace Marketplace のアプリの掲載情報に関連付けられている場合、アプリの掲載情報、ユーザー、レビューは新しいプロジェクトに引き継がれません。新しいプロジェクト内にアプリのリスティングを作成し、ユーザーがアプリを再インストールする必要があります。新しいアプリのリスティングを作成する方法については、アプリを公開するをご覧ください。
- スクリプトをデフォルトのプロジェクトに戻すことはできません。標準プロジェクトを使用するようにスクリプトを設定すると、デフォルトのプロジェクトが削除されます。
別の標準 Cloud プロジェクトに切り替える
スクリプトの既存の Cloud プロジェクトを別の Cloud プロジェクトに切り替える手順は次のとおりです。
- 適切な Cloud プロジェクトがない場合は、プロジェクトを作成するの手順に沿ってプロジェクトを作成します。Google Cloud コンソールの [リソースの管理] ページで見つけられるように、覚えやすいプロジェクト名を設定します。Apps Script は、ユーザーにスクリプトの承認を求めるときにこの名前を使用します。
- 既存のプロジェクトを使用する場合は、Google Cloud コンソールの [リソースの管理] ページを開き、使用する既存のプロジェクトを見つけます。プロジェクトに対して、プロジェクト ブラウザと OAuth 構成エディタのロール、または同等の権限を持つロールが必要です。Apps Script によって自動作成されたプロジェクトは使用できません。
- Cloud プロジェクトのプロジェクト番号を確認します。
- Cloud プロジェクトを置き換えるスクリプトを開きます。
- 左側の [プロジェクト設定] をクリックします。
- [Google Cloud Platform(GCP)プロジェクト] で、[プロジェクトを変更] をクリックします。
- 新しいプロジェクト番号を入力し、[プロジェクトを設定] をクリックします。
クラウド プロジェクトと共有ドライブ
共有ドライブ(旧称: チームドライブ)は、ドライブ ユーザーのグループが Apps Script プロジェクトやドライブのドキュメントでコラボレーションできる共有スペースです。共有ドライブは、チームでスクリプト、アドオン、ウェブアプリを開発する場合に便利ですが、古いデフォルトの Cloud プロジェクトでできることには制限があります。
次の制限事項のリストは、Cloud プロジェクトが共有ドライブとどのようにやり取りするかを示しています。
- スクリプト プロジェクトで標準プロジェクトを使用している場合、スクリプト プロジェクトが共有ドライブにある場合でも、追加の制限はありません。
- スクリプト プロジェクトで 2019 年 4 月 8 日以降に作成されたデフォルト プロジェクトを使用している場合、スクリプト プロジェクトが共有ドライブにある場合、追加の制限はありません。
- スクリプト プロジェクトで 2019 年 4 月 8 日より前に作成されたデフォルト プロジェクトを使用している場合、スクリプト プロジェクトが共有ドライブにある間は、次の制限が適用されます。
- Apps Script UI または Google Cloud コンソールを使用してデフォルト プロジェクトにアクセスすることはできません。この制限により、プロジェクトへの直接アクセスを必要とする操作を行うことができなくなります。
- 高度なサービスを有効にできません。高度なサービスを有効にするには、標準プロジェクトに切り替えます。
- 既存の Apps Script プロジェクトを共有ドライブに移動すると、デフォルトの Cloud プロジェクトへのアクセスが制限されます。移行前にアクセス権を持っていた場合は、引き続きデフォルト プロジェクトにアクセスできます。たとえば、マイドライブ フォルダにスクリプトを作成して共有ドライブに移動した場合でも、スクリプトの Cloud プロジェクトにアクセスできます。共有ドライブの共同編集者はできない場合があります。
- スクリプトは、共有ドライブに移動する前の Cloud プロジェクト名を保持します。共有ドライブでプロジェクト名を変更しても、スクリプトを承認するユーザーには、承認ダイアログに古い名前が表示されます。
古いスクリプトに対して上記の制限を回避するには、標準プロジェクトに切り替える必要があります。
Apps Script Cloud プロジェクトのリストを取得する
組織の Apps Script プロジェクト フォルダに対する resourcemanager.projects.list
権限が付与されている場合、フォルダ内の標準の Apps Script Cloud プロジェクトとデフォルトの Apps Script Cloud プロジェクトをすべて表示できます。
- Google Cloud コンソールの [リソースの管理] ページを開きます。
- Apps Script フォルダの横で、ID をコピーします。
- [フィルタ] > [親 ID] をクリックし、Apps Script フォルダ ID を貼り付けます。
Apps Script Cloud プロジェクトを削除する
Apps Script Cloud プロジェクトを削除するには、Apps Script Cloud プロジェクトの一覧を取得するの手順に沿って、削除するプロジェクトを選択し、[削除] をクリックします。
gcloud
を使用して Apps Script プロジェクトを削除するには、次のコマンドを使用します。
gcloud projects list --filter='parent.id=APPS_SCRIPT_FOLDER_ID'
gcloud projects delete PROJECT_ID
Cloud プロジェクトの削除の詳細については、プロジェクトのシャットダウン(削除)をご覧ください。