安裝及使用 Cloud Tools for PowerShell

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 專案。
  • 瀏覽器,例如 ChromeFirefox
  • 一台 Windows 電腦。

您會如何使用這個教學課程?

僅供閱讀 閱讀並完成練習

您對 Google Cloud Platform 的使用感想為何?

新手 中級 還算容易

2. 設定和需求

在本程式碼研究室中,您需要有 Google Cloud 專案才能與 PowerShell 互動。您可以使用現有的專案,也可以按照下列步驟建立新專案。

自修環境設定

如果您還沒有 Google 帳戶 (Gmail 或 G Suite),請先建立帳戶。登入 Google Cloud 控制台 ( console.cloud.google.com),並建立新專案:

aa2b71cbc7c28c59.png

60b154eb0fd9569a.png

記住專案 ID,也就是所有 Google Cloud Platform 專案的專屬名稱。稍後在本程式碼研究室中會稱為 PROJECT_ID

接下來,您需要前往 Google Cloud 控制台啟用計費功能,才能使用 Google Cloud Platform 資源,例如 Google Cloud Datastore 和 Cloud Storage。

新使用者符合 $300 美元免費試用資格的 Google Cloud Platform。執行本程式碼研究室所需的費用不應超過數美元,但如果您決定使用更多資源,或讓這些資源繼續運作,費用會增加 (請參閱本文件結尾的「清理」一節)。

3. 安裝方式

自修環境安裝

PowerShell cmdlet 屬於 Cloud SDK for Windows 的一部分。如果您還沒有安裝及安裝 Windows 版 Google Cloud SDK,請按照 Windows 快速入門導覽課程指南中所述的方式操作。請確認您已在安裝 Cloud SDK 時勾選 PowerShell 選項。

d6df1af5b5b08e41.png

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 指令列殼層。

66b0c5d9b1cd7c68.png

為確保 Google Cloud cmdlet 已正確安裝,請執行 Get-GceInstance cmdlet。這份清單應該會列出專案中的 Compute Engine 執行個體。

3ffd420f66f76b06.png

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。

建立值區

您必須先建立值區,才能將檔案上傳至 Cloud Storage。使用 New-GcsBucket cmdlet 來建立新的值區。

$bucket = "my-gcs-bucket"
New-GcsBucket $bucket

將檔案上傳至值區

您可以使用 New-GcsObject 將檔案或整個資料夾上傳至值區。

您可以使用 -File 參數並指定檔案路徑,將本機檔案的內容上傳至 Cloud Storage。或者,您也可以透過 PowerShell 管道,將物件內容當做字串傳遞,也可以使用 -Value 參數。

從您的機器挑選本機檔案,並上傳至您的值區,如下所示。

New-GcsObject -Bucket "my-gcs-bucket" -File "C:\path\to\some\file\hello.txt"

您可以使用 -UploadFolder 參數並指定資料夾路徑,將本機磁碟中的整個目錄上傳至 Cloud Storage。如果您不希望資料夾直接上傳到 Cloud Storage 值區的根目錄,請使用 -ObjectNamePrefix 指定前置字串,這會套用到每個上傳的物件。

選擇電腦上的本機資料夾,然後上傳至您的值區,如下所示。

New-GcsObject -Bucket "my-gcs-bucket" -Folder "C:\path\to\some\folder"

搜尋資料

搜尋資料的方法有兩種:使用 cmdlet 或透過一般檔案搜尋 cmdlet 使用供應器。為您的值區嘗試執行下列指令。

Get-GcsObject $bucket | Select Name, Size | Out-GridView

這時畫面上應該會顯示包含名稱和大小的格狀彈出式視窗。

59d92a6bfec86f89.png

讀取資料

您可以使用 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。

後續步驟