Google Cloud プロジェクト

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

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

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

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

  • ほとんどのスクリプトでは、このデフォルト プロジェクトを表示または調整する必要はありません。Google Cloud で必要となるインタラクションは Apps Script によって処理されます。たとえば、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 プロジェクトを削除できます。デフォルトの Cloud プロジェクトを表示または編集するをご覧ください。

管理者以外の方は、デフォルト プロジェクトを手動で削除することはできません。ただし、スクリプト プロジェクトを削除するか、標準プロジェクトを使用するように切り替えると、スクリプトに添付されたデフォルトのプロジェクトと、それに含まれるすべての設定または情報が 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)プロジェクト] で、プロジェクト番号をクリックします。

標準プロジェクトは、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 と番号を確認する

すべての Google Cloud プロジェクトには、プロジェクト名、プロジェクト ID、プロジェクト番号があります。サービスを構成したり、他のタスクを完了したりするために、これらの識別子が必要になることがあります。

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

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

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

スクリプト プロジェクトで Google Cloud ロギングまたはエラー報告を使用している場合は、次の手順で Google Cloud コンソールでログとレポートを表示できます。

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

OAuth を必要とするサービスを使用する場合、Google はユーザーにサービスの承認を求めるメッセージを表示します。OAuth 同意画面の設定では、Google がユーザーに表示する情報(アプリ名や利用規約の URL など)の一部を設定できます。

デフォルトの 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. [アプリケーションの種類] でアプリケーションの種類を選択し、必要に応じて表示されたフォームに入力します。完了したら、[作成] をクリックします。
  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 プロジェクトで、ドライブ 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. 新しいプロジェクト番号を入力し、[プロジェクトを設定] をクリックします。

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

共有ドライブ(以前のチームドライブ)は、Google ドライブ ユーザーのグループが Apps Script プロジェクトと Google ドライブ ドキュメントで共同作業できる共有スペースを提供します。共有ドライブは、チームでスクリプト、アドオン、ウェブアプリを開発する際に便利ですが、以前のデフォルトの 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 プロジェクトとデフォルトの 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 プロジェクトの削除の詳細については、プロジェクトのシャットダウン(削除)をご覧ください。