Google Cloud プロジェクト

すべての Apps Script プロジェクトでは、Google Cloud を使用して承認、拡張サービス、その他の詳細を管理します。これらの設定を構成して管理するために、すべての Apps Script プロジェクトには Google Cloud プロジェクトが関連付けられています。スクリプト プロジェクトは、Apps Script が自動的に作成するデフォルト プロジェクトか、自分で作成した標準プロジェクトを使用できます。一般的に、デフォルト プロジェクトは日常的なスクリプトやシンプルなスクリプトに適していますが、複雑で商用品質のアプリケーションや公開する予定のアプリケーションには標準プロジェクトを使用する必要があります。

デフォルト プロジェクトから標準プロジェクトへの切り替えはいつでもできますが、デフォルト プロジェクトに戻すことはできません。開発の早い段階で、スクリプトで使用する Cloud プロジェクトを選択することをおすすめします。後で切り替えると、ユーザーに再認証を求めるなど、複雑になる可能性があります。

デフォルトの Cloud プロジェクト

Apps Script プロジェクトを作成すると、Apps Script はバックグラウンドで動作するデフォルトの Cloud プロジェクトを作成します。

  • ほとんどのスクリプトでは、このデフォルト プロジェクトを表示または調整する必要はありません。Apps Script は、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 でデフォルトのプロジェクトが削除されます。

  • スクリプト プロジェクトを削除するか、標準プロジェクトを使用するように切り替えると、Apps Script では、スクリプトにアタッチされているデフォルトのプロジェクトが、プロジェクト内の設定や情報とともに削除されます。
  • スクリプトが 180 日以上実行されない場合、Apps Script は関連するデフォルト プロジェクトを削除します。Apps Script がデフォルト プロジェクトを削除した後にスクリプトを実行すると、Apps Script によってスクリプト用のプロジェクトが作成されます。

標準の Cloud プロジェクト

プロジェクトを手動で構成する必要がない限り、ほとんどのスクリプト プロジェクトではデフォルトの Cloud プロジェクトが最適なオプションです。このような場合は、スクリプト プロジェクトを切り替えて標準プロジェクトを使用する必要があります。

以下のセクションでは、Apps Script で標準プロジェクトが必要になる場合、そのプロジェクトのプロパティ、標準プロジェクトで行う一般的なタスクについて説明します。以下のタスクは、標準プロジェクトでのみ実行できます。

Apps Script が標準の Cloud プロジェクトを必要とする場合

次の状況では、標準プロジェクトを使用する必要があります。

標準の Cloud プロジェクトのプロパティ

標準プロジェクトには次のプロパティがあります。

  • プロジェクトのすべての Google Cloud 設定には、Google Cloud コンソールから直接アクセスできます。これにより、API の有効化、認証情報の調整、その他の詳細の構成を行うことができます。
  • スクリプト プロジェクトを削除したり、別の標準プロジェクトを使用するように切り替えたりしても、元の標準プロジェクトは残り、再利用できます。
  • スクリプト プロジェクトで拡張サービスを有効にする場合は、標準プロジェクトで対応する API を手動で有効にする必要があります。
  • 複数のスクリプト プロジェクトと他のアプリで同じ標準プロジェクトを共有できます。スクリプト プロジェクトをアドオンとして Google Workspace Marketplace に公開する場合は、独自の標準プロジェクトが必要です。公開アプリは、クラウド プロジェクトを他のアプリと共有できません。
  • Apps Script API の scripts.run メソッドを使用して、別のアプリからスクリプト プロジェクトの関数を実行する場合は、スクリプト プロジェクトと呼び出し元アプリケーションが同じ標準プロジェクトを共有している必要があります。
  • Apps Script がユーザーに標準プロジェクトを使用するスクリプトの承認を求める場合、スクリプトの識別には Cloud プロジェクト名が使用されます(スクリプトのプロジェクト名ではありません)。このため、適切な Cloud プロジェクト名を設定してください。

標準の Cloud プロジェクトにアクセスする

スクリプト プロジェクトに関連付けられた標準プロジェクトにアクセスする手順は次のとおりです。

  1. Apps Script プロジェクトを開きます。
  2. 左側にある [プロジェクトの設定] をクリックします。
  3. [Google Cloud Platform(GCP)プロジェクト] でプロジェクト番号をクリックします。

標準プロジェクトは、Google Cloud コンソールの [リソースの管理] ページで直接確認することもできます。

標準の Cloud プロジェクトで API を有効にする

多くの場合、Apps Script アプリケーションは別の Google API にアクセスする必要があります。これを行うには、対応する Cloud プロジェクトで API を有効にする必要があります。次の手順で API を有効にします。

  1. Cloud プロジェクトを開きます
  2. メニュー > [API とサービス] をクリックします。
  3. [有効な API とサービス] をクリックします。
  4. 有効にする API を検索ボックスに入力し、Enter キーを押します。
  5. 検索結果から API をクリックし、[有効にする] をクリックして、この Cloud プロジェクトの API を有効にします。

Google API または Google Cloud の利用規約に同意するよう求められる場合があります。同意する前に、利用規約をよくお読みください。

アプリケーションによっては、[API とサービス] ダッシュボードで API を選択して API を構成することが必要な場合があります。

標準の Cloud プロジェクトの ID と番号を確認する

すべての Cloud プロジェクトには、プロジェクト名、プロジェクト ID、プロジェクト番号があります。サービスの構成やその他のタスクを行うために、これらの ID が必要になることがあります。

標準プロジェクトの ID と番号を確認する手順は次のとおりです。

  1. Cloud プロジェクトを開きます
  2. 右上のその他アイコン > [プロジェクト設定] をクリックします。
  3. 表示される [設定] パネルに、プロジェクト名プロジェクト IDプロジェクト番号が表示されます。[プロジェクト番号] は数字のみで構成され、[プロジェクト ID] は英数字です。承認プロンプトでユーザーに表示されるプロジェクト名は編集できます。

Google Cloud コンソールで Google Cloud のログとエラーレポートを表示する

スクリプト プロジェクトで Google Cloud Logging またはError Reporting を使用している場合は、Google Cloud コンソールでこれらのログとレポートを表示できます。手順は次のとおりです。

  1. Cloud プロジェクトを開きます
  2. メニュー をクリックします。
  3. [オペレーション] セクションまで下にスクロールし、[ロギング] > [ログ エクスプローラ] をクリックします。
  4. エラーレポートを表示するには、[オペレーション] セクションまでスクロールし、[Error Reporting] をクリックします。Error Reporting を設定するように求められた場合、スクリプト プロジェクトはまだ例外をログに記録していません。

OAuth を必要とするサービスを使用すると、これらのサービスを承認するように Google がユーザーに求めます。OAuth 同意画面の設定では、アプリケーション名や利用規約 URL など、Google がユーザーに表示する情報の一部を設定できます。

デフォルトの Cloud プロジェクトでは、Apps Script プロジェクトの詳細から同意画面が自動的に作成されます。これらの設定は変更できません。この情報はカスタマイズできますスクリプトの同意画面は、次の手順で設定できます。

  1. Cloud プロジェクトを開きます
  2. メニュー > [API とサービス] > [認証情報] をクリックします。
  3. [同意画面を構成] をクリックします。
  4. 同意画面ワークフローの各セクションに入力します。
  5. ワークフローの各段階で変更を記録するには、[保存して次へ] をクリックします。

OAuth 認証情報を作成する

Apps Script では通常、スクリプトが使用するサービス用に OAuth を設定します。アプリケーションによっては、追加の OAuth 認証情報(クライアント ID とクライアント シークレット)を作成する必要があります。これは標準プロジェクトでのみ可能です

スクリプト プロジェクトのクライアント ID とクライアント シークレットを作成する手順は次のとおりです。

  1. Cloud プロジェクトを開きます
  2. メニュー > [API とサービス] > [認証情報] をクリックします。
  3. [認証情報を作成] > [OAuth クライアント ID] をクリックします。
  4. [アプリケーション タイプ] でアプリケーション タイプを選択し、必要に応じて結果のフォームに記入します。完了したら、[作成] をクリックします。
  5. 表示されたダイアログで、[JSON をダウンロード] をクリックします。このファイルを使用して OAuth を構成できます。

標準の Cloud プロジェクトにオーナーを追加する

標準プロジェクトには、オーナーや他のロールを追加できます。プロジェクトで共同作業を行っている場合は、チームの誰かがスクリプト プロジェクトの Google Cloud 設定に常にアクセスできるようになります。

標準プロジェクトにオーナーやその他のロールを追加する手順は次のとおりです。以下の変更を行うには、プロジェクトの編集権限が必要です。

  1. 共同編集者を指定する。Google グループを作成または既存の Google グループを使用することをおすすめします。共同編集者のリストでドメインを指定して、そのドメイン内のすべてのユーザーを含めることもできます。
  2. スクリプトの Cloud プロジェクトを開きます
  3. メニュー > [IAM と管理] > [IAM] をクリックします。
  4. 上部の [追加] をクリックします。
  5. 画面上の手順に沿って、1 つ以上の新しいメンバーとそのロールを Cloud プロジェクトに追加します。個々のメールアドレス、Google グループ、ドメインを新しいメンバーとして追加できます。
  6. [保存] をクリックします。

複数のスクリプトを 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 を有効にします。

    Drive API を有効にする

  • 以前にスクリプトを承認したすべてのユーザーは、再承認する必要があります。ほとんどの場合、新しいプロジェクトに関連付けられた以前に承認されたアプリを持っているすべてのユーザーも再承認する必要があります。
  • スクリプトが Google Workspace Marketplace のアプリの掲載情報に関連付けられている場合、アプリの掲載情報、ユーザー、レビューは新しいプロジェクトに引き継がれません。新しいプロジェクト内にアプリの掲載情報を作成し、ユーザーがアプリを再インストールする必要があります。新しいアプリの掲載情報の作成方法については、アプリを公開するをご覧ください。
  • スクリプトをデフォルトのプロジェクトに戻すことはできません。Apps Script では、標準プロジェクトを使用するようにスクリプトを設定すると、デフォルトのプロジェクトが削除されます。

別の標準の Cloud プロジェクトに切り替える

スクリプトの既存の Cloud プロジェクトを別の Cloud プロジェクトに切り替えるには、次の操作を行います。

  1. 適切な Cloud プロジェクトがない場合は、プロジェクトの作成の手順に沿ってプロジェクトを作成します。Google Cloud コンソールの [リソースの管理] ページで見つけられるように、覚えやすいプロジェクト名を設定します。Apps Script は、ユーザーにスクリプトの承認を求めるときにこの名前を使用します。
  2. 既存のプロジェクトを使用する場合は、Google Cloud コンソールの [リソースの管理] ページを開き、使用する既存のプロジェクトを見つけます。プロジェクトに対するプロジェクト ブラウザと OAuth 構成編集者のロール、または同等の権限を持つロールが必要です。Apps Script で自動的に作成されたプロジェクトは使用できません。
  3. Cloud プロジェクトのプロジェクト番号を確認します
  4. 置き換える Cloud プロジェクトがあるスクリプトを開きます。
  5. 左側にある [プロジェクトの設定] をクリックします。
  6. [Google Cloud Platform(GCP)プロジェクト] で、[プロジェクトを変更] をクリックします。
  7. 新しいプロジェクト番号を入力し、[プロジェクトを設定] をクリックします。

クラウド プロジェクトと共有ドライブ

共有ドライブ(旧チームドライブ)は、ドライブ ユーザーのグループが Apps Script プロジェクトやドライブ ドキュメントを共同編集できる共有スペースを提供します。共有ドライブは、チームでスクリプト、アドオン、ウェブアプリを開発する場合に便利ですが、古いデフォルトの Cloud プロジェクトで実行できる操作には制限があります。

次の制限事項は、Cloud プロジェクトと共有ドライブとのやり取りを示しています。

  • スクリプト プロジェクトが標準プロジェクトを使用している場合、スクリプト プロジェクトが共有ドライブにある場合、追加の制限はありません。
  • スクリプト プロジェクトが 2019 年 4 月 8 日以降に作成されたデフォルト プロジェクトを使用している場合、スクリプト プロジェクトが共有ドライブ内にある場合、追加の制限はありません。
  • 2019 年 4 月 8 日より前に作成されたデフォルトのプロジェクトをスクリプト プロジェクトで使用している場合、スクリプト プロジェクトが共有ドライブ上にある間は、次の制限が適用されます。
    1. Apps Script UI または Google Cloud コンソールを使用してデフォルト プロジェクトにアクセスすることはできません。この制限により、プロジェクトに直接アクセスする必要があるアクションを実行できなくなります。
    2. 拡張サービスを有効にすることはできません。拡張サービスを有効にするには、標準プロジェクトに切り替えます。
    3. 既存の Apps Script プロジェクトを共有ドライブに移動すると、Google はデフォルトの Cloud プロジェクトへのアクセスを制限します。移動前にアクセス権を持っていれば、デフォルトのプロジェクトに引き続きアクセスできます。たとえば、[マイドライブ] フォルダにスクリプトを作成してから共有ドライブに移動した場合、そのスクリプトの Cloud プロジェクトにはアクセスできます。共有ドライブ内の共同編集者はアクセスできない可能性があります。
    4. スクリプトは、共有ドライブに移動される前の Cloud プロジェクト名を保持します。共有ドライブのプロジェクト名を変更しても、スクリプトを承認するユーザーの承認ダイアログには古い名前が引き続き表示されます。

古いスクリプトについて上記の制限を回避するには、標準プロジェクトに切り替えます。

Apps Script Cloud プロジェクトのリストを取得する

組織の Apps Script プロジェクト フォルダに対する resourcemanager.projects.list 権限がある場合、フォルダ内のすべての標準およびデフォルトの Apps Script Cloud プロジェクトを表示できます。

  1. Google Cloud コンソールの [リソースの管理] ページを開きます。
  2. Apps Script フォルダの横で、ID をコピーします。
  3. [フィルタ] > [親 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 プロジェクトの削除の詳細については、プロジェクトのシャットダウン(削除)をご覧ください。