Apps Script プロジェクトでは、承認、拡張サービスなどの詳細の管理に Google Cloud を使用しています。これらの設定を構成して管理するために、すべての Apps Script プロジェクトに Google Cloud プロジェクトが関連付けられています。スクリプト プロジェクトでは、Apps Script が自動的に作成するデフォルトのプロジェクトか、ユーザー自身で作成した標準プロジェクトを使用できます。一般的に、デフォルトのプロジェクトは日常のスクリプトや単純なスクリプトに適していますが、複雑で商用品質のアプリケーションや公開予定のアプリケーションには、標準プロジェクトを使用する必要があります。
いつでもデフォルトのプロジェクトから標準プロジェクトに切り替えることができますが、デフォルトのプロジェクトに戻すことはできません。開発の早い段階でスクリプトで使用する Cloud プロジェクトを選択することをおすすめします。後で切り替えると、ユーザーに再承認が必要になるなど、複雑になる可能性があります。
デフォルトの Cloud プロジェクト
Apps Script プロジェクトを作成すると、Apps Script によって、バックグラウンドで動作するデフォルトの Cloud プロジェクトが作成されます。
- ほとんどのスクリプトでは、このデフォルト プロジェクトを表示または調整する必要はありません。Apps Script は、Google Cloud と必要なインタラクションを処理します。たとえば、Apps Script エディタで拡張サービスを有効にした場合、スクリプト プロジェクトを保存すると、デフォルトの Cloud プロジェクトで拡張サービスが有効になります。
- 一部のスクリプトでは、Google Cloud コンソールを操作する必要があります。このような場合、スクリプトでは代わりに標準の Cloud プロジェクトを使用する必要があります。たとえば、Google Cloud コンソールで Google Cloud のログを表示するには、スクリプトで標準プロジェクトを使用する必要があります。
デフォルトでは、Cloud プロジェクトには Identity and Access Management(IAM)ポリシーに 1 つのエントリがあります。これは、デフォルト プロジェクトのオーナーとして機能する Google サービス アカウントです。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 ではデフォルト プロジェクトが削除されます。
- スクリプト プロジェクトを削除するか、標準プロジェクトを使用するように切り替えると、Apps Script は、スクリプトに接続されているデフォルトのプロジェクトとともに、含まれている設定や情報を削除します。
- スクリプトが 180 日以上実行されていない場合、Apps Script では関連するデフォルト プロジェクトが削除されます。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)Project] で、プロジェクト番号をクリックします。
標準プロジェクトは、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 Logging または Error Reporting を使用している場合、これらのログとレポートを Google Cloud コンソールで表示するには、次の操作を行います。
- Cloud プロジェクトを開きます。
- メニュー をクリックします。
- [オペレーション] セクションまで下にスクロールし、[ロギング] > [ログ エクスプローラ] をクリックします。
- エラーレポートを表示するには、[オペレーション] セクションまで下にスクロールし、[Error Reporting] をクリックします。エラーレポートを設定するように求められた場合、スクリプト プロジェクトはまだ例外をログに記録していません。
OAuth 同意画面の入力を完了する
OAuth を必要とするサービスを使用する場合、Google はユーザーにそのサービスの承認を求めるプロンプトを表示します。OAuth 同意画面の設定では、アプリケーション名や利用規約の URL など、Google がユーザーに表示する情報の一部を設定できます。
デフォルトの Cloud プロジェクトでは、Apps Script プロジェクトの詳細から同意画面が自動的に作成され、これらの設定を調整することはできません。標準の Cloud プロジェクトでは この情報をカスタマイズできますスクリプトの同意画面は、次の手順で構成できます。
- Cloud プロジェクトを開きます。
- メニュー > [API とサービス] > [認証情報] をクリックします。
- [同意画面を構成] をクリックします。
- 同意画面のワークフローの各セクションに入力します。
- ワークフローの各段階で変更を記録するには、[保存して次へ] をクリックします。
OAuth 認証情報を作成する
Apps Script は通常、スクリプトが使用するサービスの OAuth を設定します。一部のアプリケーションでは、追加の OAuth 認証情報(クライアント ID とクライアント シークレット)を作成する必要があります。これは標準プロジェクトでのみ行うことができます。
スクリプト プロジェクトのクライアント ID とクライアント シークレットを作成する手順は次のとおりです。
- Cloud プロジェクトを開きます。
- メニュー > [API とサービス] > [認証情報] をクリックします。
- [認証情報を作成] > [OAuth クライアント ID] をクリックします。
- [Application type] で、アプリケーション タイプを選択し、必要に応じてフォームに入力します。完了したら、[作成] をクリックします。
- 表示されたダイアログで、[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 のアプリ掲載情報に関連付けられている場合、アプリの掲載情報、ユーザー、レビューは新しいプロジェクトには引き継がれません。新しいプロジェクト内にアプリの掲載情報を作成し、ユーザーがアプリを再インストールする必要があります。新しいアプリの掲載情報の作成については、アプリを公開するをご覧ください。
- スクリプトをデフォルトのプロジェクトに戻すことはできません。標準プロジェクトを使用するようにスクリプトを設定すると、Apps Script によってデフォルトのプロジェクトが削除されます。
別の標準 Cloud プロジェクトに切り替える
スクリプトの既存の Cloud プロジェクトを別の Cloud プロジェクトに切り替えるには、次の操作を行います。
- 適切な Cloud プロジェクトがない場合は、プロジェクトの作成の手順に沿ってプロジェクトを作成します。Google Cloud コンソールの [リソースの管理] ページで見つけられるよう、覚えやすいプロジェクト名を設定します。Apps Script では、ユーザーにスクリプトの承認を求めるときにこの名前を使用します。
- 既存のプロジェクトを使用する場合は、Google Cloud コンソールの [リソースの管理] ページを開き、使用する既存のプロジェクトを見つけます。プロジェクトに対して、プロジェクト参照者と OAuth Config 編集者のロール、または同等の権限を持つロールが必要です。Apps Script によって自動的に作成されたプロジェクトは使用できません。
- Cloud プロジェクトのプロジェクト番号を確認します。
- Cloud プロジェクトを置き換えるスクリプトを開きます。
- 左側にある [プロジェクトの設定] をクリックします。
- [Google Cloud Platform(GCP)プロジェクト] で、[プロジェクトを変更] をクリックします。
- 新しいプロジェクト番号を入力し、[プロジェクトを設定] をクリックします。
Cloud プロジェクトと共有ドライブ
共有ドライブ(旧称: チームドライブ)は、ドライブ ユーザーのグループが Apps Script プロジェクトやドライブのドキュメントを共同編集できる共有スペースを提供します。共有ドライブは、チームでスクリプト、アドオン、ウェブアプリを開発する場合に便利ですが、古いデフォルトの Cloud プロジェクトでできることが制限されます。
次の制限事項では、Cloud プロジェクトと共有ドライブとのやり取りについて説明します。
- スクリプト プロジェクトで標準プロジェクトを使用する場合、スクリプト プロジェクトが共有ドライブにある場合、追加の制限はありません。
- 2019 年 4 月 8 日以降に作成されたデフォルトのプロジェクトをスクリプト プロジェクトで使用する場合、スクリプト プロジェクトが共有ドライブ内にある場合、追加の制限はありません。
- 2019 年 4 月 8 日より前に作成されたデフォルトのプロジェクトをスクリプト プロジェクトで使用する場合、スクリプト プロジェクトが共有ドライブ内にある間は、次の制限が適用されます。
- Apps Script UI または Google Cloud コンソールを使用してデフォルト プロジェクトにアクセスすることはできません。この制限により、プロジェクトに直接アクセスする必要があるアクションは実行できません。
- 拡張サービスを有効にできません。拡張サービスを有効にするには、標準プロジェクトに切り替えます。
- 既存の Apps Script プロジェクトを共有ドライブに移動すると、Google はデフォルトの Cloud プロジェクトへのアクセスを制限します。移行前にデフォルト プロジェクトにアクセスしていた場合は、引き続きアクセスできます。たとえば、マイドライブ フォルダにスクリプトを作成して共有ドライブに移動した場合、スクリプトの Cloud プロジェクトには引き続きアクセスできます。共有ドライブ内の共同編集者はアクセスできない可能性があります。
- スクリプトには、共有ドライブに移動する前の Cloud プロジェクト名が保持されます。共有ドライブでプロジェクト名を変更しても、スクリプトを承認したユーザーの承認ダイアログには、引き続き古い名前が表示されます。
古いスクリプトに関する上記の制限を回避するには、標準プロジェクトに切り替えます。
Apps Script Cloud プロジェクトのリストを取得する
組織の Apps Script プロジェクト フォルダに対する resourcemanager.projects.list
権限がある場合は、フォルダ内の標準およびデフォルトの 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 プロジェクトの削除の詳細については、プロジェクトのシャットダウン(削除)をご覧ください。