隨著 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 |
附註建立執行個體。
請參閱建立和啟動執行個體一文。 |
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} |
附註假如磁碟被標記為自動刪除,則除非使用 |
預設執行個體設定
在 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