從 gcutil 過渡至 gcloud compute


隨著 gcloud compute 開放一般使用者使用,Compute Engine r議所有使用者從 gcutil 轉換到 gcloud compute 工具。 gcloud compute 是整合式指令列工具,擁有數個針對 gcutil 的改進功能,其中包括:

  • TAB 鍵自動完成
  • 直接升級
  • 豐富的手冊樣式說明
  • 不同輸出格式選擇

為協助使用者從 gcutil 轉換到 gcloud compute,本指南會說明兩種工具的主要差異。如需 gcloud compute 工具的詳細說明,請參閱 gcloud compute 文件。

新的 gcloud 指令碼

所有現有的 gcutil 指令在 gcloud compute 工具中都有對等的指令,但還是有一些例外。透過瀏覽參考頁面或是執行 gcloud compute --help 即可取得 gcloud 指令的完整清單。下表簡要說明常見 gcutil 指令的變更。

gcutil 指令 gcloud 運算指令
gcutil addinstance INSTANCE
gcloud compute instances create INSTANCE
附註

建立執行個體。

  • 可設定預設區域/地區。否則,「gcloud compute」會提示輸入區域/地區。
  • 使用預設屬性建立虛擬機器,例如:
    • machine-type: n1-standard-1
    • image: debian-10

請參閱建立和啟動執行個體一文。

gcutil 指令 gcloud 運算指令
gcutil deleteinstance INSTANCE
gcloud compute instances delete INSTANCE \
       [--keep-disks {boot,all,none}]
附註

刪除執行個體。請參閱刪除執行個體一文。

gcutil 指令 gcloud 運算指令
gcutil ... --cache_flag_values
gcloud configs set project PROJECT
gcloud configs set compute/zone ZONE
gcloud configs set compute/region REGION
附註

設定專案、區域和地區的預設值。請參閱設定預設區域或地區一文。

gcutil 指令 gcloud 運算指令
gcutil push/pull
gcloud compute scp
附註

在本機電腦和虛擬機器之間複製檔案。請參閱「使用 Google Cloud CLI 轉移檔案」。

gcutil 指令 gcloud 運算指令
gcutil deleteRESOURCE
gcloud compute RESOURCES delete
附註

刪除資源,例如:

gcloud compute instances delete example-instance
gcutil 指令 gcloud 運算指令
gcutil getRESOURCES
gcloud compute RESOURCES describe
附註

描述單一資源,例如:

gcloud compute instances describe example-instance

gcutil 指令 gcloud 運算指令
gcutil listRESOURCES
gcloud compute RESOURCES list
附註

列出所有該類型的資源。舉例來說,列出執行個體:

gcloud compute instances list

gcutil 指令 gcloud 運算指令
gcutil setmetadata
gcloud compute instances add-metadata
gcloud compute instances remove-metadata
gcloud compute project-info add-metadata
gcloud compute project-info remove-metadata
附註

樂觀鎖定現在可由工具完成,因此無需手動指定指紋。請參閱設定自訂執行個體中繼資料一文。

gcutil 指令 gcloud 運算指令
gcutil … --dump_request_response

尚未提供。

gcutil 指令 gcloud 運算指令
gcutil … --log_level=DEBUG
gcloud … --verbosity debug
附註

此外,針對 ~/.config/gcloud/logs 的每個指令,記錄也儲存在檔案中。

gcutil 指令 gcloud 運算指令
gcutil ssh INSTANCE --ssh_user
gcloud compute ssh USER@INSTANCE
附註

請參閱連線至執行個體一文。

gcutil 指令 gcloud 運算指令
gcutil … \
--image=projects/project-id/global/images/image
gcloud compute … --image image-name \
       --image-project image-project
附註

請參閱透過映像檔啟動執行個體一文。

gcutil 指令 gcloud 運算指令
gcutil deleteinstances --[no]delete_pd
gcutil deleteinstances --[no]delete_boot_pd
gcloud compute instances delete … \
       --delete-disks {all,none,boot}
gcloud compute instances delete … \
       --keep-disks {all,none,boot}
附註

假如磁碟被標記為自動刪除,則除非使用 --keep-disks 旗標予以指定,否則磁碟將自動遭到刪除。

預設執行個體設定

gcloud compute 建立執行個體現在會為虛擬機器的映像檔和機器類型提供數個預設值。您可以藉由略過 --image--machine-type 旗標來選擇使用這些預設值,也可以透過提供適當的標記來覆寫設定。預設的虛擬機器設定如下:

  • 預設映像檔:最新 debian-10 映像檔
  • 預設機器類型:n1-standard-1

舉例來說,您可以直接執行:

gcloud compute instances create example-instance --zone us-central1-a

此外,gcloud compute gcloud compute 將使用上述映像檔和機器類型建立執行個體。

輸出格式

預設輸出格式已變更,並且會根據您執行的指令而有所不同。舉例來說,假設您執行 describe 指令以取得有關單一資源的資訊,則回應輸出內容為是 YAML 格式。 您可以使用 --format 旗標以不同的輸出格式 (例如 JSON 或文字) 傳回回應:

gcloud compute instances list --format {json,yaml,text}

更新中繼資料現在是附加作業

設定或更新中繼資料時,您不再需要提供指紋。 根據預設,所有中繼資料變更都視為附加作業。您可以新增單一中繼資料項目或更新項目,而無需執行所有中繼資料的批次更新。只有傳入的中繼資料鍵才會發生變化。

gcloud compute instances add-metadata example-instance \
         --metadata cookies=chocolate

指定映像檔專案

先前如要指定映像檔,您必須提供包含專案名稱的部分映像檔 URI,範例如下:

gcutil addinstance example-instance \
         --image=projects/debian-cloud/global/images/debian-9

gcloud compute,您現在必須使用新的 --image-project 旗標來指定映像檔專案:

gcloud compute instances create example-instance \
         --image debian-9-stretch-vYYYMMDD
         --image-project debian-cloud

您也可以提供完整的 URI:

gcloud compute instances create example-instance \
         --image https://compute.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-9-stretch-vYYYMMDD