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 專案的 Identity and Access Management (IAM) 政策設有一個項目,也就是做為預設專案擁有者的 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 專案的情況

在下列情況中,您必須使用標準專案:

標準 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,然後按一下「Enable」即可為這個 Cloud 專案啟用 API。

系統可能會提示您接受 Google APIGoogle Cloud 的《服務條款》。接受之前,請先詳閱《服務條款》。

視應用程式而定,您可能也需要在「APIs & Services」(API 和服務) 資訊主頁中選取 API,以設定 API。

決定標準 Cloud 專案的 ID 和編號

所有 Cloud 專案都有專案名稱、專案 ID 和專案編號。有時候,您必須具備這些 ID 才能設定服務或完成其他工作。

如要判斷標準專案的 ID 和編號,請按照下列步驟操作:

  1. 開啟 Cloud 專案
  2. 依序按一下右上方的「更多」圖示 >「Project settings」
  3. 在產生的「Settings」(設定) 面板中查看「Project name」(專案名稱)、「Project ID」(專案 ID),以及「Project number」(專案編號)「專案編號」只包含數字,而「專案 ID」是由英數字元組成。您可以編輯「Project name」(專案名稱),系統會在授權提示期間向使用者顯示該專案名稱。

在 Google Cloud 控制台中查看 Google Cloud 記錄檔和錯誤報告

如果指令碼專案使用的是 Google Cloud Logging錯誤報告,就可以按照下列步驟在 Google Cloud 控制台中查看這些記錄檔和報表:

  1. 開啟 Cloud 專案
  2. 按一下「選單」圖示
  3. 向下捲動至「Operations」(作業) 部分,然後依序按一下「Logging」>「記錄檔探索工具」
  4. 如要查看錯誤報告,請向下捲動至「Operations」(作業) 部分,然後按一下「Error Reporting」。如果系統提示您設定錯誤報告,這表示您的指令碼專案尚未記錄任何例外狀況。

當您使用需要 OAuth 的服務時,Google 會提示使用者為這些服務進行授權。OAuth 同意畫面設定可讓您設定 Google 向使用者顯示的部分資訊,例如應用程式名稱和服務條款網址。

預設 Cloud 專案會自動根據 Apps Script 專案詳細資料建立同意畫面,因此您無法調整這些設定。標準 Cloud 專案可讓您自訂這項資訊您可以設定指令碼的同意畫面,步驟如下:

  1. 開啟 Cloud 專案
  2. 依序按一下「選單」圖示 >「API 和服務」>「憑證」
  3. 按一下 [Configure consent screen] (設定同意畫面)。
  4. 填寫同意畫面工作流程的每個部分。
  5. 如要在工作流程中每個階段記錄變更,請按一下「Save and continue」(儲存並繼續)

建立 OAuth 憑證

Apps Script 通常會針對指令碼使用的服務設定 OAuth。對於某些應用程式,您必須建立額外的 OAuth 憑證 (用戶端 ID 和用戶端密鑰)。您只能在標準專案中執行這項操作。

如要為指令碼專案建立用戶端 ID 和用戶端密鑰,請按照下列步驟操作:

  1. 開啟 Cloud 專案
  2. 依序按一下「選單」圖示 >「API 和服務」>「憑證」
  3. 按一下「Create credentials」(建立憑證) >「OAuth client ID」(OAuth 用戶端 ID)
  4. 在「Application type」下方,選取您的應用程式類型,然後視需要填寫顯示的表單。完成後,請按一下「建立」
  5. 在隨即顯示的對話方塊中,按一下「Download JSON」。您可以使用這個檔案設定 OAuth。

為標準 Cloud 專案新增其他擁有者

您可以為標準專案新增其他擁有者或其他角色。如果您對專案進行協作,這有助於確保團隊中隨時有人能存取指令碼專案的 Google Cloud 設定。

您可以在標準專案中新增其他擁有者或其他角色,方法如下。您必須具備專案的編輯權限,才能進行下列變更:

  1. 決定協作者。建議您建立或使用現有的 Google 群組。您也可以在協作者清單中指定網域,以納入該網域中的所有使用者。
  2. 開啟指令碼的 Cloud 專案
  3. 依序點選「Menu」(選單) >「IAM 與管理」>「IAM」
  4. 按一下頂端的「新增」
  5. 按照畫面上的指示,將一或多個新成員及其角色新增至 Cloud 專案。您可以將個別電子郵件、Google 網路論壇或網域新增為新成員。
  6. 點按「儲存」

將多個指令碼分組至單一 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. 按一下左側的「Project Settings」圖示
  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. 依序按一下「Filter」>「Parent ID」,然後貼上 Apps Script 資料夾 ID。

刪除 Apps Script Cloud 專案

如要刪除 Apps Script Cloud 專案,請按照「取得 Apps Script Cloud 專案清單」下方的步驟操作,選取要刪除的專案,然後按一下「Delete」(刪除)

如要使用 gcloud 刪除 Apps Script 專案,請使用下列指令。

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

如要進一步瞭解如何刪除 Cloud 專案,請參閱「關閉 (刪除) 專案」一文。