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 プロジェクトには 1 つのエントリ(デフォルト プロジェクトのオーナーとして機能する Google サービス アカウント)を含む 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 に公開する場合は、独自の標準プロジェクトが必要です。公開アプリで Cloud プロジェクトを他のアプリと共有することはできません。
  • Apps Script API の scripts.run メソッドを使用して別のアプリからスクリプト プロジェクトの関数を実行するには、スクリプト プロジェクトと呼び出し元のアプリが同じ標準プロジェクトを共有する必要があります。
  • Apps Script がユーザーに標準プロジェクトを使用するスクリプトを承認すると、Cloud プロジェクト名がスクリプトの識別に使用されます(スクリプト プロジェクト名ではありません)。このため、適切な Cloud プロジェクト名を設定してください。

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

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

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

標準プロジェクトは、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 を選択して構成する必要が生じる場合もあります。

標準的な 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] をクリックします。エラーレポートを設定するように求められた場合、スクリプト プロジェクトでまだ例外がログに記録されていないことを意味します。

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

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

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

OAuth 認証情報を作成する

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

スクリプト プロジェクトのクライアント ID とクライアント シークレットを作成するには、次の操作を行います。

  1. Cloud プロジェクトを開きます
  2. メニュー > [API とサービス] > [認証情報] の順にクリックします。
  3. [認証情報を作成] > [OAuth クライアント ID] の順にクリックします。
  4. [Application type] でアプリケーションの種類を選択し、必要に応じてフォームに入力します。完了したら、[作成] をクリックします。
  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 Config 編集者のロール、または同等の権限を持つロールが必要です。Apps Script によって自動的に作成されたプロジェクトは使用できません。
  3. Cloud プロジェクトのプロジェクト番号を決定します
  4. Cloud プロジェクトを置き換えるスクリプトを開きます。
  5. 左側にある [プロジェクトの設定] をクリックします。
  6. [Google Cloud Platform(GCP)プロジェクト] で、[プロジェクトを変更] をクリックします。
  7. 新しいプロジェクト番号を入力し、[プロジェクトを設定] をクリックします。

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

共有ドライブ(旧称: チームドライブ)は、ドライブ ユーザーのグループが Apps Script プロジェクトやドライブのドキュメントを共同編集できる共有スペースを提供します。共有ドライブは、チームでスクリプト、アドオン、ウェブアプリを開発する際に役立ちますが、古いデフォルトの Cloud プロジェクトでできることにいくつかの制限があります。

次の制限事項では、Cloud プロジェクトが共有ドライブとやり取りする方法について説明します。

  • スクリプト プロジェクトで標準プロジェクトを使用する場合、スクリプト プロジェクトが共有ドライブにある場合、追加の制限はありません。
  • 2019 年 4 月 8 日以降に作成されたデフォルトのプロジェクトをスクリプト プロジェクトで使用する場合、スクリプト プロジェクトが共有ドライブにある場合、追加の制限はありません。
  • スクリプト プロジェクトで、2019 年 4 月 8 日より前に作成されたデフォルトのプロジェクトを使用している場合、スクリプト プロジェクトが共有ドライブにある間は、次の制限が適用されます。
    1. Apps Script UI や Google Cloud コンソールを使用してデフォルト プロジェクトにアクセスすることはできません。この制限により、プロジェクトに直接アクセスする必要があるアクションを実行できなくなります。
    2. 高度なサービスを有効にできません。高度なサービスを有効にするには、標準プロジェクトに切り替えてください。
    3. 既存の Apps Script プロジェクトを共有ドライブに移動すると、デフォルトの 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 プロジェクトの削除の詳細については、プロジェクトのシャットダウン(削除)をご覧ください。