1. 總覽
PowerShell 是以 .NET Framework 為基礎建構的指令列殼層和相關指令碼語言。這是 Windows 世界中預設的工作自動化和設定管理工具。PowerShell cmdlet 是在 PowerShell 中叫用的輕量型指令。
Cloud Tools for PowerShell 是一組 cmdlet,可用於存取及操控 Google Cloud 資源,例如 Google Compute Engine、Google Cloud Storage、Google Cloud SQL 和 Google Cloud DNS,未來還會支援更多資源!
在本實驗室中,您將瞭解如何透過 PowerShell 與 Google Cloud 資源互動。
課程內容
- 如何安裝 Cloud Tools for PowerShell。
- 如何使用 Google Cloud SDK 進行驗證。
- 如何透過 PowerShell 建立及管理 Google Compute Engine。
- 如何從 PowerShell 將資料備份至 Google Cloud Storage。
軟硬體需求
您會如何使用本教學課程?
你對 Google Cloud Platform 的使用體驗滿意嗎?
2. 設定和需求
在本程式碼研究室中,您需要 Google Cloud 專案才能與 PowerShell 互動。如果您有現有專案,可以使用該專案,也可以按照下列步驟建立新專案。
自修實驗室環境設定
如果您沒有 Google 帳戶 (Gmail 或 G Suite),請務必建立帳戶。登入 Google Cloud 控制台 ( console.cloud.google.com) 並建立新專案:


請記住專案 ID,這是所有 Google Cloud Platform 專案的專屬名稱。本程式碼研究室稍後會將其稱為 PROJECT_ID。
接著,您需要在 Google Cloud 控制台中啟用帳單,才能使用 Google Cloud Datastore 和 Cloud Storage 等 Google Cloud Platform 資源。
Google Cloud Platform 新使用者享有價值 $300 美元的免費試用期。完成本程式碼研究室的費用不應超過數美元,但如果您決定使用更多資源,或是將資源繼續執行,則可能會增加費用 (請參閱本文件結尾的「清除」一節)。
3. 安裝
自修實驗室環境安裝
PowerShell cmdlet 隨附於 Windows 版 Cloud SDK。如果尚未安裝,請按照 Windows 快速入門指南的說明,下載並安裝 Windows 版 Google Cloud SDK。確認安裝 Cloud SDK 時已勾選 PowerShell 選項。

4. 驗證
Cloud Tools for PowerShell 會使用儲存在 Cloud SDK 中的憑證和設定。因此,如要開始使用 cmdlet,請先使用 Cloud SDK 登入。
自主環境驗證
啟動 Google Cloud SDK Shell,然後執行下列指令。
gcloud init
使用 Google 使用者帳戶並接受登入選項。
To continue, you must log in. Would you like to log in (Y/n)? Y
在瀏覽器中,於系統提示時登入 Google 使用者帳戶,然後按一下「允許」,授予存取 Google Cloud Platform 資源的權限。
在命令提示字元中,從具有「擁有者」、「編輯者」或「檢視者」權限的清單中,選取 Cloud Platform 專案。
Pick a cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
...
Please enter your numeric choice:
5. 在 PowerShell 中執行 Google Cloud cmdlet
驗證完成後,您就可以在 PowerShell 中使用 Google Cloud cmdlet。尋找並開啟 PowerShell 指令列殼層。

如要確認 Google Cloud Cmdlet 是否已正確安裝,請執行 Get-GceInstance Cmdlet。這應該會列出專案中的 Compute Engine 執行個體。

6. 建立及管理 Google Compute Engine 執行個體
在本節中,您將透過 Google Cloud Tools for PowerShell 建立及管理 Google Compute Engine。
建立執行個體設定
建立執行個體之前,您必須先建立執行個體設定。您必須至少設定名稱、機器類型,以及開機磁碟映像檔或既有的開機磁碟。使用 Get-GceImage 建立磁碟映像檔,並使用 New-GceInstanceConfig 建立設定。
$disk = Get-GceImage "windows-cloud" -Family "windows-2012-r2"
$config = New-GceInstanceConfig "my-vm-1" `
-MachineType "n1-standard-4" `
-DiskImage $disk
此時,您已擁有可用來建立執行個體的設定。
建立執行個體
使用 Add-GceInstance cmdlet 建立新的 Compute Engine 執行個體。您可以指定專案和區域,但如果省略此步驟,參數值會預設為目前有效 Cloud SDK 設定中的值。如果您指定專案,請務必將 PROJECT_ID 換成您自己的專案 ID。
$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b
管理執行個體
您可以使用 Get-GceInstance cmdlet 擷取專案的虛擬機器執行個體。由於執行個體名稱在所有專案或區域中可能會重複,因此您可以指定專案或區域參數來縮小搜尋範圍。根據預設,cmdlet 會使用有效 Cloud SDK 設定中的值。
$instance = Get-GceInstance "my-vm-1"
使用 Set-GceInstance cmdlet 建立執行個體後,您可以設定執行個體標記、磁碟、存取設定和其他中繼資料。新增一些中繼資料,然後按照下列方式移除。
Set-GceInstance $instance -AddMetadata @{"newKey" = "newValue"}
Set-GceInstance $instance -RemoveMetadata "newKey"
Set-GceInstance $instance -RemoveTag "beta" -AddTag "alpha"
現在,請新增標記,稍後會用來移除執行個體。
Set-GceInstance $instance -AddTag "to-be-removed"
您可以使用各種 cmdlet 來啟動、停止或重新啟動執行個體。您可以使用 Get-GceInstance cmdlet 傳回的名稱或強型別物件,參照某個執行個體。請使用這些指令進行操作。
Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"
最後,當您使用完執行個體後,請使用 Remove-GceInstance cmdlet 並提供先前指定的標記,將執行個體從 Compute Engine 中移除。
Get-GceInstance -Project $project |
Where { $_.Tags.Items -contains "to-be-removed" } |
Remove-GceInstance -WhatIf
7. 將資料備份至 Google Cloud Storage
在本程式碼研究室的這部分,您會使用 Cloud Tools for PowerShell,將資料從本機備份到 Google Cloud Storage。
建立 bucket
將檔案上傳至 Cloud Storage 前,您需要先建立 bucket。使用 New-GcsBucket cmdlet 建立新值區。
$bucket = "my-gcs-bucket"
New-GcsBucket $bucket
將檔案上傳至 bucket
您可以使用 New-GcsObject 將檔案或整個資料夾上傳到值區。
您可以使用 -File 參數並指定檔案路徑,將本機檔案內容上傳至 Cloud Storage。此外,您也可以透過 PowerShell 管道,將物件內容視為字串來傳送,或使用 -Value 參數。
在本機上選擇檔案,然後按照下列步驟上傳至 bucket。
New-GcsObject -Bucket "my-gcs-bucket" -File "C:\path\to\some\file\hello.txt"
如要從本機磁碟將整個目錄上傳到 Cloud Storage,請使用 -UploadFolder 參數並指定資料夾路徑。如果您不想將資料夾直接上傳到 Cloud Storage bucket 的根目錄,請使用 -ObjectNamePrefix 指定前置字串,這會套用到每個上傳的物件。
在本機上選擇資料夾,然後按照下列步驟上傳至 bucket。
New-GcsObject -Bucket "my-gcs-bucket" -Folder "C:\path\to\some\folder"
搜尋資料
搜尋資料的方法有兩種:使用 cmdlet 或透過一般檔案搜尋 cmdlet 使用提供者。請試試下列指令,並將 bucket 換成您的 bucket。
Get-GcsObject $bucket | Select Name, Size | Out-GridView
您應該會看到名稱和大小的格線彈出式視窗。

讀取資料
您可以使用 Read-GcsObject cmdlet 讀取資料。舉例來說,您可以使用下列指令,將名為 hello.txt 的檔案讀取至桌面。
Read-GcsObject $bucket "hello.txt" `
-OutFile "$Env:UserProfile\Desktop\hello.txt"
刪除資料
最後,您可以使用 Remove-GcsObject cmdlet 刪除資料。使用下列指令刪除值區的所有內容。
Get-GcsObject $bucket | Remove-GcsObject
8. 恭喜!
在本程式碼研究室中,您已瞭解如何透過 PowerShell 管理 Compute Engine 執行個體和 Cloud Storage 值區,但這只是冰山一角!您也可以使用 PowerShell 管理 Cloud SQL 和 Cloud CDN 資源。如要瞭解詳情,請參閱下方的後續步驟清單。
涵蓋內容
- 如何安裝 Cloud Tools for PowerShell。
- 如何使用 Google Cloud SDK 進行驗證。
- 如何透過 PowerShell 建立及管理 Google Compute Engine。
- 如何從 PowerShell 將資料備份至 Google Cloud Storage。
後續步驟
- 進一步瞭解 Cloud Tools for PowerShell。
- 進一步瞭解 Google Cloud Platform 上的 Windows。
- 進一步瞭解 Google Cloud Platform 上的 .NET。
- 進一步瞭解 Google Cloud Platform 上的 SQL Server。
- 進一步瞭解 Cloud Tools for Visual Studio。