Google Cloud プロジェクト

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

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

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

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

  • ほとんどのスクリプトでは、このデフォルト プロジェクトを表示または調整する必要はありません。Apps Script は、Google Cloud と必要なやり取りを処理します。たとえば、Apps Script エディタで詳細サービスを有効にすると、Apps Script は、スクリプト プロジェクトを保存するときにデフォルトの Google Cloud プロジェクトでその詳細サービスを有効にします。
  • 一部のスクリプトでは、Google Cloud Console の操作が必要になります。このような場合、スクリプトで代わりに標準の Google Cloud プロジェクトを使用する必要があります。たとえば、Google Cloud Console で Google Cloud ログを表示するには、スクリプトで標準プロジェクトを使用する必要があります。

デフォルトの Google Cloud プロジェクトを表示または更新する

ほとんどのユーザーは、Google Cloud Console でデフォルトのプロジェクトを直接検索、表示、編集することはできません。親の Google Cloud フォルダに対する resourcemanager.projects.list 権限を持つ管理者とドメイン ユーザーは、デフォルトのプロジェクトを表示し、構成できます。

  • Google Workspace のお客様の場合、デフォルト プロジェクトは Cloud リソース階層の Organization root > system-gsuite > apps-script フォルダにあります。これらのフォルダは削除しないでください。これを行うと、スクリプトがデフォルトのプロジェクトを作成できなくなり、正しく実行されなくなります。
  • Google Workspace を利用していないお客様の場合、デフォルトのプロジェクトはリソース階層で親なしになります。

デフォルトの Google Cloud プロジェクトを削除する

管理者は、標準の Google Cloud プロジェクトと同様に、デフォルトの Google Cloud プロジェクトを削除できます。Apps Script Google Cloud プロジェクトの削除をご覧ください。

管理者でない場合は、デフォルトのプロジェクトを削除できません。ただし、次の場合、Apps Script はデフォルトのプロジェクトを削除します。

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

標準の Google Cloud プロジェクト

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

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

Apps Script で標準の Google Cloud プロジェクトが必要な場合

次のような場合は、標準プロジェクトを使用する必要があります。

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

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

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

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

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

新しいエディタ

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

以前のエディタ

  1. Apps Script エディタでスクリプトを開きます。
  2. [リソース > Cloud Platform プロジェクト] を選択します。
  3. 表示されたダイアログで、GCP プロジェクト名を参照する上部のリンクをクリックします。

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

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

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

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

Google API または Google Cloud の利用規約に同意するよう求められる場合があります。利用規約に同意する前に慎重に検討してください。

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

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

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

標準プロジェクトの ID と番号を確認するには、次の手順を行います。

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

Google Cloud Console で Google Cloud のログとエラーレポートを表示する

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

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

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

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

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

OAuth 認証情報を作成する

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

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

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

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

標準プロジェクトにオーナーやその他のロールを追加できます。プロジェクトで共同作業を行う場合、チームのユーザーは常にスクリプト プロジェクトの Google Cloud 設定にアクセスできます。

次の手順に沿って、標準プロジェクトにオーナーやその他のロールを追加できます。これらの変更を行うには、プロジェクトの編集権限が必要です。

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

1 つの Google Cloud プロジェクトで複数のスクリプトをグループ化する

複数の Apps Script プロジェクトが、同じ標準の Google Cloud プロジェクトを共有できるようになりました。これを行うには、標準プロジェクトを作成してから、各スクリプト プロジェクトを切り替えます。デフォルトのプロジェクトでは、この操作を行えません。

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

スクリプト プロジェクトを切り替えて、別の標準の Google Cloud プロジェクトを使用するようにできます。スクリプトで Google Cloud プロジェクトの手動構成が必要な場合は、標準プロジェクトに切り替える必要があります。標準プロジェクトを使用するタイミングの詳細については、標準 Google Cloud プロジェクトをご覧ください。

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

新しいエディタ

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

以前のエディタ

  1. 適切な GCP プロジェクトがない場合は、プロジェクトの作成手順に沿って新しいプロジェクトを作成します。それ以外の場合は、Google Cloud Console の [リソースの管理] ページを開き、使用する既存の GCP プロジェクトを見つけます。GCP プロジェクトの編集権限が必要であり、Google Cloud Console でその設定を表示できる必要があります。新しいプロジェクトを Apps Script によって自動的に作成したプロジェクトにすることはできません。
  2. Google Cloud Console の [リソースの管理] ページで覚えやすい GCP プロジェクト名を設定します。この名前は、Apps Script でユーザーにスクリプトの承認を求めたときにスクリプトを識別するためにも使用されます。
  3. GCP プロジェクトのプロジェクト番号を決定します
  4. Apps Script エディタで、GCP プロジェクトの置き換えを行うスクリプトを開きます。
  5. [リソース &Cloud Platform プロジェクト] をクリックします。
  6. [プロジェクトの変更] セクションで、コピーしたプロジェクト番号をテキスト フィールドに貼り付けて、[プロジェクトを設定] をクリックします。
  7. 警告画面では、Cloud Platform プロジェクトの変更による影響が説明されます。注意事項をよく読み、[確認] をクリックします。

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

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

次の制限のリストは、Google Cloud プロジェクトが共有ドライブとどのようにやり取りするかを示しています。

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

古いスクリプトに上記の制限が適用されないようにするには、標準プロジェクトに切り替えます

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

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

  1. Google Cloud Console の [リソースの管理] ページを開きます。
  2. Apps Script フォルダの横にある ID をコピーします。
  3. [フィルタ] > [親 ID] をクリックして、Apps Script フォルダ ID を貼り付けます。

Apps Script Google Cloud プロジェクトの削除

Apps Script Google Cloud プロジェクトを削除するには、Apps Script Google Cloud プロジェクトのリストの取得の手順に沿って、削除するプロジェクトを選択し、[削除] をクリックします。

gcloud を使用して Apps Script プロジェクトを削除するには、次のコマンドを使用します。

gcloud projects list --filter='parent.id=APPS_SCRIPT_FOLDER_ID'
gcloud projects delete PROJECT_ID

Google Cloud プロジェクトの削除の詳細については、プロジェクトのシャットダウン(削除)をご覧ください。