Google 試算表是雲端試算表解決方案,支援即時協作,並提供資料視覺化、處理及傳達工具。
本教學課程將示範如何從 Google 試算表觸發 Workflows。
目標
在這個教學課程中,您將執行下列操作:
- 使用雲端問卷調查和問卷解決方案 Google 表單,建立可提交要求來建立虛擬機器 (VM) 執行個體的表單。
- 將 Google 試算表連結至表單,即可收集及儲存所有回覆。
- 使用 Google Apps Script (雲端 JavaScript 平台,可讓您以程式輔助方式建立、讀取及編輯 Google Workspace 產品),在試算表更新時核准要求,藉此觸發工作流程。
- 部署工作流程,呼叫 Compute Engine API 連接器,並根據透過表單收集的規格建立 Compute Engine VM 執行個體。連接器可簡化其他 Google CloudAPI 的呼叫作業。進一步瞭解 Workflows 連接器。
- 測試整個程序,並確認 VM 執行個體是否如預期建立完成。
費用
在本文件中,您會使用 Google Cloud的下列計費元件:
如要根據預測用量估算費用,請使用 Pricing Calculator。
本教學課程也會使用 Google Workspace。Google 免費版消費者應用程式未提供的企業級服務,皆須付費。
事前準備
您可以在 Google Cloud 控制台中執行下列部分指令,也可以在終端機或 Cloud Shell 中使用 Google Cloud CLI 執行。
貴機構定義的安全性限制,可能會導致您無法完成下列步驟。如需疑難排解資訊,請參閱「在受限的 Google Cloud 環境中開發應用程式」。
主控台
在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案。
請確認您已為 Google Cloud 專案啟用計費功能。瞭解如何檢查專案是否已啟用計費功能。
啟用 Compute Engine 和 Workflows API。
記下 Compute Engine 預設服務帳戶,因為在本教學課程中,您會將該帳戶與工作流程建立關聯,以進行測試。啟用 Compute Engine API 的新專案會建立這個服務帳戶,並指派 IAM 基本編輯者角色,電子郵件地址格式如下:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
請確認您已為 Google Cloud 專案啟用計費功能。 瞭解如何檢查專案是否已啟用計費功能。
啟用 Compute Engine 和 Workflows API。
gcloud services enable \ compute.googleapis.com \ workflows.googleapis.com
記下 Compute Engine 預設服務帳戶,因為在本教學課程中,您會將該帳戶與工作流程建立關聯,以進行測試。啟用 Compute Engine API 的新專案會建立這個服務帳戶,並指派 IAM 基本編輯者角色,電子郵件地址格式如下:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
您可以透過下列方式取得專案編號:
gcloud projects describe PROJECT_ID
建立要求 VM 執行個體的表單
建立表單,用於提交建立 Compute Engine 虛擬機器 (VM) 執行個體的要求。根據預設,透過 Google 表單建立的表單會儲存在 Google 雲端硬碟中。
- 前往 forms.google.com。
- 按一下「空白」
。
系統隨即會開啟新表單。
- 建立表單,並加入五個必填部分。表單應如下所示:
查看範例表單
機器名稱 簡答文字
可用區 下拉式選單:
- us-central1-a
- us-central1-b
- us-central1-c
- us-central1-f
類型 下拉式選單:
- e2-micro
- e2-small
- e2-medium
- e2-standard-2
- e2-standard-4
磁碟大小 (GB) 簡答文字
作業系統 下拉式選單:
- debian-10
- centos-stream-9
- cos-93-lts
- cos-97-lts
- 啟用電子郵件地址收集功能,即可記錄表單填寫者的電子郵件地址:
- 按一下「設定」。
- 展開「Responses」(回應) 區段。
- 按一下「收集電子郵件地址」切換鈕。
將試算表連結至表單
建立表單後,請將表單連結至試算表,以便將表單回覆儲存至該試算表。系統會將產生的試算表儲存在「雲端硬碟」。
- 在 Google 表單中開啟表單。
- 按一下 [回覆]。
- 按一下「連結至 Google 試算表」。
- 在「選取回應目標位置」對話方塊中,選取「建立新試算表」。
點選「建立」。
系統會開啟連結的試算表。
在 H 欄中新增「核准?」標題。
將游標放在第 H 欄的第一列,然後依序選取「插入」> 核取方塊」。
試算表應類似下列所示:
每次在試算表中新增回覆時,該回覆的列也會顯示核取方塊。
使用 Apps Script 擴充 Google 試算表功能
您可以使用 Apps Script,以程式輔助方式建立、讀取及編輯試算表。為 Google 試算表設計的指令碼大多會操控陣列,與試算表中的儲存格、列和欄互動。如要瞭解如何搭配使用 Apps Script 和 Google 試算表,請參閱自訂函式快速入門導覽課程。
從 Google 試算表建立 Apps Script 專案:
- 開啟 Google 試算表。
- 依序選取「擴充功能」>「Apps Script」。
- 在指令碼編輯器中,按一下「未命名的專案」。
- 為專案命名,然後按一下「重新命名」。
現在指令碼已繫結至試算表,因此指令碼可以變更使用者介面,或在試算表開啟時做出回應。
指令碼專案代表一組 Apps Script 檔案和資源。指令碼專案中的程式碼檔案會採用
.gs
副檔名。您可以使用 Apps Script 編寫自訂函式,並在 Google 試算表中使用,就像內建函式一樣。自訂函式是使用標準 JavaScript 建立,建立函式:
Apps Script 的可安裝觸發條件可讓指令碼專案在符合特定條件時執行指定函式,例如開啟或編輯試算表時。建立觸發條件:
- 開啟 Apps Script 專案。
- 按一下「觸發條件」 。
- 按一下「新增觸發條件」。
- 在「Add Trigger for YOUR_PROJECT_NAME」(為 YOUR_PROJECT_NAME 新增觸發條件) 對話方塊中,設定觸發條件:
- 在「Choose which function to run」(選擇要執行的函式) 清單中,選取「handleEdit」。
- 在「Choose which deployment should run」(選擇要執行的部署作業) 清單中,選取「Head」。
- 在「選取事件來源」清單中,選取「從試算表」。
- 在「選取事件類型」清單中,選取「編輯時」。
- 在「失敗通知設定」清單中,選取「每天通知我」。
- 按一下 [儲存]。
如果系統提示你選擇 Google 帳戶,請選取適當的帳戶,然後按一下「允許」。
這樣一來,您的 Apps Script 專案就能查看、編輯、建立及刪除 Google 試算表,並連線至外部服務。
Apps Script 專案的資訊清單檔案是 JSON 檔案,用於指定 Apps Script 順利執行指令碼所需的基本專案資訊。請注意,為保護 Apps Script 專案設定,Apps Script 編輯器預設會隱藏資訊清單檔案。編輯資訊清單檔案:
- 開啟 Apps Script 專案。
- 按一下「專案設定」 。
- 勾選「在編輯器中顯示『appsscript.json』資訊清單檔案」核取方塊。
- 按一下「編輯器」圖示 。
- 資訊清單檔案會顯示為名為
appsscript.json
的專案檔案。如要編輯檔案,請選取檔案。 oauthScopes
欄位會指定字串陣列。如要設定專案使用的授權範圍,請新增包含所需範圍的陣列。例如:{ "timeZone": "America/Toronto", "dependencies": { }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8", "oauthScopes": [ "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/spreadsheets" ] }
這會將明確範圍設為:
- 連線至外部服務
- 查看、編輯、設定及刪除您的 Google Cloud 資料,以及查看您 Google 帳戶的電子郵件地址
- 查看、編輯、建立及刪除您的所有 Google 試算表檔案
按一下「儲存」圖示
。
部署會建立 VM 執行個體的工作流程
部署工作流程,在建立 VM 執行個體的要求獲得核准時觸發。工作流程會呼叫 Compute Engine API 連接器,根據透過表單收集的規格建立 Compute Engine VM 執行個體。
控制台
前往 Google Cloud 控制台的「Workflows」頁面:
按一下「建立」
。輸入新工作流程的名稱:
create-vm-from-form
。在「Region」(區域) 清單中,選取「us-central1 (Iowa)」(us-central1 (愛荷華州))。
在「服務帳戶」中,選取 Compute Engine 預設服務帳戶 (
PROJECT_NUMBER-compute@developer.gserviceaccount.com
)。點選「下一步」。
在工作流程編輯器中,輸入下列工作流程定義:
按一下 [Deploy] (部署)。
gcloud
為工作流程建立原始碼檔案:
touch create-vm-from-form.yaml
在文字編輯器中,將下列工作流程複製到原始碼檔案:
輸入下列指令來部署工作流程:
gcloud workflows deploy create-vm-from-form \ --source=create-vm-from-form.yaml \ --location=us-central1 \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com
將
PROJECT_NUMBER
替換為專案編號。 Google Cloud您可以透過下列方式取得專案編號:gcloud projects describe PROJECT_ID
測試端對端流程
如要確認一切運作正常,請嘗試執行整個程序。
將表單傳送給自己,並適當回答問題。
確認您用來建立 VM 執行個體的規格有效,否則工作流程執行作業會失敗。詳情請參閱 Compute Engine 通用機器系列。
按一下「提交」即可送出回覆。
在 Google 表單中開啟表單。
按一下 [回覆]。
按一下「在 Google 試算表中查看」。
系統會開啟連結的試算表。
在回覆的列中,選取「已核准?」核取方塊。
開啟 Apps Script 專案。
按一下「執行」
。觸發條件應會執行並列出,狀態為
Completed
。確認
create-vm-from-form
工作流程是否順利完成:主控台
前往 Google Cloud 控制台的「Workflows」頁面。
在「Workflows」頁面中,按一下「create-vm-from-form」工作流程,前往詳細資料頁面。
在「Workflow details」(工作流程詳細資料) 頁面中,如要擷取特定執行的詳細資料,請按一下適當的執行 ID。
「執行狀態」應為「成功」,且「輸入」窗格中應會顯示您要求的 VM 規格。
gcloud
擷取工作流程的執行嘗試清單:
gcloud workflows executions list create-vm-from-form
結果應類似如下內容:
NAME: projects/918619793306/locations/us-central1/workflows/create-vm-from-form/executions/d8947ecb-9ccb-4ea1-ba10-e5c10414e3be STATE: SUCCEEDED START_TIME: 2023-01-24T15:07:40.404741791Z END_TIME: 2023-01-24T15:07:55.649373625Z
確認已如預期建立新的 VM:
主控台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
VM 執行個體應會列出,且狀態顯示為正在執行。
gcloud
擷取專案中所有可用區的所有 VM 匯總清單:
gcloud compute instances list
VM 執行個體應會列出,且狀態顯示為正在執行。
如要進一步瞭解
gcloud compute instances list
指令,請參閱參考頁面。
清除所用資源
如果您是為了這個教學課程建立新專案,請刪除專案。如果您使用現有專案,並想保留專案,但不要在本教學課程中新增的變更,請刪除為本教學課程建立的資源。
刪除專案
如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。
如要刪除專案:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.