arrow_back

開始使用 Cloud Shell 和 gcloud

加入 登录
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

開始使用 Cloud Shell 和 gcloud

Lab 45 分钟 universal_currency_alt 1 积分 show_chart 入门级
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP002

Google Cloud 自修研究室標誌

總覽

在 Cloud Shell 中,您可以透過指令列存取託管於 Google Cloud 的運算資源。Cloud Shell 是一種以 Debian 為基礎的虛擬機器,主目錄配備 5 GB 的永久磁碟儲存空間,方便您管理 Google Cloud 專案和資源。這個虛擬機器已預先安裝 gcloud 指令列工具和其他公用程式,可讓您快速開始執行作業。

在這個實作研究室中,您將學習下列內容:在 Cloud Shell 中,透過 gcloud 工具連線至託管於 Google Cloud 的運算資源。

我們建議您自行輸入指令,這麼做有助於強化核心概念。許多研究室都附有程式碼區塊,當中列出必要的指令。您可以複製這些指令,並貼到合適的地方。

學習內容

  • 練習使用 gcloud 指令。
  • 連線至託管於 Google Cloud 的運算資源。

事前準備

  • 瞭解如何使用標準的 Linux 文字編輯器 (例如 vimemacsnano)。

設定和需求

點選「Start Lab」按鈕前的須知事項

請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。

您將在真正的雲端環境中完成實作研究室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。

如要完成這個研究室活動,請先確認:

  • 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意:請使用無痕模式或私密瀏覽視窗執行此研究室。這可以防止個人帳戶和學生帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成研究室活動了!別忘了,活動一開始將無法暫停。
注意:如果您擁有個人 Google Cloud 帳戶或專案,請勿用於本研究室,以免產生額外費用。

如何開始研究室及登入 Google Cloud 控制台

  1. 按一下「Start Lab」(開始研究室) 按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」(研究室詳細資料) 面板會顯示下列項目:

    • 「Open Google Console」(開啟 Google 控制台) 按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的暫時憑證
    • 完成這個研究室所需的其他資訊 (如有)
  2. 按一下「Open Google Console」(開啟 Google 控制台)。接著,研究室會啟動相關資源並開啟另一個分頁,當中會顯示「Sign in」(登入) 頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意事項:如果頁面中顯示了「Choose an account」(選擇帳戶) 對話方塊,請按一下「Use Another Account」(使用其他帳戶)
  3. 如有必要,請複製「Lab Details」(研究室詳細資料) 面板中的使用者名稱,然後貼到「Sign in」(登入) 對話方塊。按一下「Next」(下一步)

  4. 複製「Lab Details」(研究室詳細資料) 面板中的密碼,然後貼到「Welcome」(歡迎使用) 對話方塊。按一下「Next」(下一步)

    重要注意事項:請務必使用左側面板中的憑證,而非 Google Cloud 技能重點加強的憑證。 注意事項:如果使用自己的 Google Cloud 帳戶來進行這個研究室,可能會產生額外費用。
  5. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Cloud 控制台稍後會在這個分頁中開啟。

注意事項:按一下畫面左上方的導覽選單,即可在選單中查看 Google Cloud 產品與服務的清單。「導覽選單」圖示

啟動 Cloud Shell

Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。

  1. 點按 Google Cloud 控制台上方的「啟用 Cloud Shell」圖示 「啟動 Cloud Shell」圖示

連線完成即代表已通過驗證,且專案已設為您的 PROJECT_ID。輸出內容中有一行宣告本工作階段 PROJECT_ID 的文字:

您在本工作階段中的 Cloud Platform 專案會設為「YOUR_PROJECT_ID」

gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。

  1. (選用) 您可以執行下列指令來列出使用中的帳戶:
gcloud auth list
  1. 點按「授權」

  2. 輸出畫面應如下所示:

輸出內容:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (選用) 您可以使用下列指令來列出專案 ID:
gcloud config list project

輸出內容:

[core] project = <project_ID>

輸出內容範例:

[core] project = qwiklabs-gcp-44776a13dea667a6 附註:如需有關 gcloud 的完整說明,請前往 Google Cloud 並參閱「gcloud CLI overview guide」(gcloud CLI 總覽指南)。

啟用 Cloud Shell 後,您可以透過指令列叫用 Cloud SDK gcloud 工具,或叫用虛擬機器執行個體提供的其他工具。在這個研究室的後續步驟中,您將使用 $HOME 目錄。這個目錄配備永久磁碟儲存空間,可儲存各專案和 Cloud Shell 工作階段的檔案。只有您能使用自己的 $HOME 目錄,其他使用者均無法存取。

工作 1:設定環境

在本節中,您將瞭解開發環境中可調整的項目。

瞭解區域和可用區

有些 Google Compute Engine 資源位於區域,有些位於可用區。「區域」是您可以執行資源的特定地理位置,每個區域則會有一或多個「可用區」。舉例來說,us-central1 區域是指美國中部,其中有 us-central1-aus-central1-bus-central1-cus-central1-f 等多個可用區。下表列出各個可用區和所屬區域:

美國西部 美國中部 美國東部 西歐 東亞
us-west1-a us-central1-a us-east1-b europe-west1-b asia-east1-a
us-west1-b us-central1-b us-east1-c europe-west1c asia-east1-b
- us-central1-c us-east1-d europe-west1-d aisia-east1-c
- us-central1-f - - -

可用區中的資源稱為「可用區資源」,像是虛擬機器執行個體和永久磁碟,這類資源都位於可用區。如果您想將永久磁碟連接至虛擬機器執行個體,這兩項資源須位於相同的可用區。同樣地,如果您要將靜態 IP 位址指派給執行個體,這兩項資源的所在區域也須相同。

注意:如要進一步瞭解區域、可用區並查看完整清單,請參閱 Google Cloud Compute Engine 的區域和可用區說明文件
  1. 將區域設為

    gcloud config set compute/region {{{project_0.startup_script.project_region | REGION}}}
  2. 如要查看專案的區域設定,請執行下列指令:

    gcloud config get-value compute/region
  3. 將可用區設為

    gcloud config set compute/zone {{{project_0.startup_script.project_zone | ZONE}}}
  4. 如要查看專案的可用區設定,請執行下列指令:

    gcloud config get-value compute/zone

找出專案資訊

  1. 將專案 ID 複製到剪貼簿或文字編輯器。您可以在下列兩個地方查看專案 ID:

    • 在 Cloud 控制台中,依序點選「導覽選單」圖示 「導覽選單」圖示 >「Cloud 總覽」>「資訊主頁」,專案 ID 就在「專案資訊」的下方。
    • 在研究室分頁中,使用者名稱和密碼的附近。
  2. 您也可以在 Cloud Shell 執行下列 gcloud 指令,查看專案 ID:

    gcloud config get-value project
  3. 在 Cloud Shell 中執行下列 gcloud 指令,即可查看專案的詳細資料。

    gcloud compute project-info describe --project $(gcloud config get-value project)

    在輸出內容中,找出可用區和區域的中繼資料值。在這個研究室的後續步驟中,您會用到輸出內容中的可用區資訊 (google-compute-default-zone)。

    注意:如果輸出內容中沒有 google-compute-default-regiongoogle-compute-default-zone 鍵/值,代表您未設定預設可用區或區域。輸出內容會列出其他與專案相關的資訊,相當實用,您不妨花一些時間詳加探索。

設定環境變數

環境變數會定義您的環境,如果您編寫內含 API 或執行檔的指令碼,即可節省後續的作業時間。

  1. 建立用於儲存專案 ID 的環境變數:

    export PROJECT_ID=$(gcloud config get-value project)
  2. 建立用於儲存可用區的環境變數:

    export ZONE=$(gcloud config get-value compute/zone)
  3. 如要確認變數是否設定正確,請執行下列指令:

    echo -e "PROJECT ID: $PROJECT_ID\nZONE: $ZONE"

    如果變數設定正確,echo 指令就會輸出專案 ID 和可用區。

透過 gcloud 工具建立虛擬機器

gcloud 工具可用來建立新的虛擬機器 (VM) 執行個體。

  1. 如要建立 VM,請執行下列指令:

    gcloud compute instances create gcelab2 --machine-type e2-medium --zone $ZONE

    輸出內容

    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-04-326fae68bc3d/zones/us-east1-c/instances/gcelab2]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS gcelab2 {{{project_0.startup_script.project_zone | ZONE}}} e2-medium 10.128.0.2 34.67.152.90 RUNNING

    指令內容

    • gcloud compute 可用來管理 Compute Engine 資源,格式比 Compute Engine API 簡單。
    • instances create 會建立新的執行個體。
    • gcelab2 代表 VM 的名稱。
    • --machine-type 旗標會指定「e2-medium」機器類型。
    • --zone 旗標會指定要在哪個可用區建立 VM。
    • 如果您省略 --zone 旗標,gcloud 工具會根據預設屬性推斷適用的可用區。在 create 指令中,如果您未另外指定值,其他必要的執行個體設定 (例如 machine typeimage) 都會設為預設值。

    測試已完成的工作

    點選「Check my progress」,確認工作已完成。如果成功透過 gcloud 工具建立虛擬機器,您就會看見評估分數。

    透過 gcloud 建立虛擬機器
    • 如要查看 create 指令的說明,請輸入下列指令:
    gcloud compute instances create --help 注意:按「Enter」鍵或空白鍵,即可捲動查看說明。如要退出,請輸入 Q

探索 gcloud 指令

gcloud 工具提供簡單的使用指南,您只要在任何 gcloud 指令末端加上 -h 旗標,即可查看說明。

  1. 執行下列指令:

    gcloud -h

您可以在指令末端加上 --help 旗標或執行 gcloud help 指令,查看更詳細的說明。

  1. 執行下列指令:

    gcloud config --help

    如要退出,請輸入 Q,然後按「Enter」鍵。

  2. 執行下列指令:

    gcloud help config

    gcloud config --helpgcloud help config 指令的效果相同,兩者都會傳回更完整的說明。

    gcloud 包含通用旗標,可管理指令在每次叫用時的行為。旗標會覆寫 SDK 屬性中的值。

  3. 查看環境的設定清單:

    gcloud config list
  4. 查看所有屬性和屬性設定:

    gcloud config list --all
  5. 列出元件:

    gcloud components list

    此指令會列出這個研究室中可用的 gcloud 元件。

工作 2:篩選指令列輸出內容

gcloud 指令列介面 (CLI) 是功能強大的工具,可在您使用指令列時派上用場,例如查看特定資訊。

  1. 列出專案中可用的運算執行個體:

    gcloud compute instances list 注意:一般來說,專案中會部署多項資源,不過 gcloud 會直接呈現輸出內容,方便您辨別特定資源。

    輸出內容範例

    NAME: gcelab2 ZONE: {{{project_0.startup_script.project_zone | ZONE}}} MACHINE_TYPE: e2-medium PREEMPTIBLE: INTERNAL_IP: 10.142.0.2 EXTERNAL_IP: 35.237.43.111 STATUS: RUNNING
  2. 列出 gcelab2 虛擬機器:

    gcloud compute instances list --filter="name=('gcelab2')"

    輸出內容範例

    NAME: gcelab2 ZONE: {{{project_0.startup_script.project_zone | ZONE}}} MACHINE_TYPE: e2-medium PREEMPTIBLE: INTERNAL_IP: 10.142.0.2 EXTERNAL_IP: 35.237.43.111 STATUS: RUNNING

在上述指令中,您要求 gcloud 僅顯示符合下列條件的資訊:名稱為 gcelab2 的虛擬個體。

  1. 列出專案中的防火牆規則:

    gcloud compute firewall-rules list

    輸出內容

    NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED default-allow-icmp default INGRESS 65534 icmp False default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False default-allow-rdp default INGRESS 65534 tcp:3389 False default-allow-ssh default INGRESS 65534 tcp:22 False dev-net-allow-ssh dev-network INGRESS 1000 tcp:22 False serverless-to-vpc-connector dev-network INGRESS 1000 icmp,udp:665-666,tcp:667 False vpc-connector-egress dev-network INGRESS 1000 icmp,udp,tcp False vpc-connector-health-check dev-network INGRESS 1000 tcp:667 False vpc-connector-to-serverless dev-network EGRESS 1000 icmp,udp:665-666,tcp:667 False
  2. 列出預設網路的防火牆規則:

    gcloud compute firewall-rules list --filter="network='default'"

    輸出內容

    NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED default-allow-icmp default INGRESS 65534 icmp False default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False default-allow-rdp default INGRESS 65534 tcp:3389 False default-allow-ssh default INGRESS 65534 tcp:22 False
  3. 列出預設網路的防火牆規則,且允許規則與 ICMP 規則相符:

    gcloud compute firewall-rules list --filter="NETWORK:'default' AND ALLOW:'icmp'"

    輸出內容

    NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED default-allow-icmp default INGRESS 65534 icmp False default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False

工作 3:連線至 VM 執行個體

gcloud compute 可用來連線至執行個體。gcloud compute ssh 指令提供 SSH 包裝函式,可處理驗證程序,並將執行個體名稱對應至 IP 位址。

  1. 如要透過 SSH 連線至 VM,請執行下列指令:

    gcloud compute ssh gcelab2 --zone $ZONE

    輸出內容

    WARNING: The public SSH key file for gcloud does not exist. WARNING: The private SSH key file for gcloud does not exist. WARNING: You do not have an SSH key for gcloud. WARNING: [/usr/bin/ssh-keygen] will be executed to generate a key. This tool needs to create the directory [/home/gcpstaging306_student/.ssh] before being able to generate SSH Keys. Do you want to continue? (Y/n)
  2. 如要繼續操作,請輸入 Y

    Generating public/private rsa key pair. Enter passphrase (empty for no passphrase)
  3. 如要將通關密語留空,請按兩次「Enter」鍵。

    注意:您已順利連線至剛剛建立的虛擬機器,有注意到命令提示字元的不同嗎?

    現在,您會在提示中看到類似 sa_107021519685252337470@gcelab2 的字串。

    • @ 符號前的字元代表目前使用的帳戶。
    • @ 符號後的字元代表目前存取的主體機器。
  4. 在虛擬機器上安裝 nginx 網路伺服器:

    sudo apt install -y nginx
  5. 在這個步驟中,您不必執行任何操作。請執行下列指令,中斷 SSH 連線並結束遠端殼層:

    exit

    您現在應會返回專案的命令提示字元。

工作 4:更新防火牆

使用虛擬機器等運算資源前,請務必瞭解相關的防火牆規則。

  1. 列出專案中的防火牆規則:

    gcloud compute firewall-rules list

    輸出內容

    NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED default-allow-icmp default INGRESS 65534 icmp False default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False default-allow-rdp default INGRESS 65534 tcp:3389 False default-allow-ssh default INGRESS 65534 tcp:22 False dev-net-allow-ssh dev-network INGRESS 1000 tcp:22 False serverless-to-vpc-connector dev-network INGRESS 1000 icmp,udp:665-666,tcp:667 False vpc-connector-egress dev-network INGRESS 1000 icmp,udp,tcp False vpc-connector-health-check dev-network INGRESS 1000 tcp:667 False vpc-connector-to-serverless dev-network EGRESS 1000 icmp,udp:665-666,tcp:667 False

    從上方的輸出內容中,可以看出有兩個可用網路。 default 網路是 gcelab2 虛擬機器的所在位置。

  2. 嘗試存取 gcelab2 虛擬機器上執行的 nginx 服務。

    注意:您並未設定合適的防火牆規則,與虛擬機器的通訊失敗。nginx 網路伺服器預期會透過 tcp:80 通訊。 為確保通訊順利,請完成下列操作:

    • 為 gcelab2 虛擬機器新增標記
    • 為 http 流量新增防火牆規則
  3. 為虛擬機器新增標記:

    gcloud compute instances add-tags gcelab2 --tags http-server,https-server
  4. 更新要允許的防火牆規則:

    gcloud compute firewall-rules create default-allow-http --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server
  5. 列出專案中的防火牆規則:

    gcloud compute firewall-rules list --filter=ALLOW:'80'

    輸出內容

    NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED default-allow-http default INGRESS 1000 tcp:80 False
  6. 確認是否能透過 http 與虛擬機器通訊:

    curl http://$(gcloud compute instances list --filter=name:gcelab2 --format='value(EXTERNAL_IP)')

畫面中會顯示預設的 nginx 輸出內容。

工作 5:查看系統記錄檔

如要瞭解專案的運作方式,查看記錄檔相當重要。請使用 gcloud 存取 Google Cloud 中可查看的記錄檔。

  1. 查看系統中的記錄檔:

    gcloud logging logs list

    輸出內容

    NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/GCEGuestAgent NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/OSConfigAgent NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/autoscaler.googleapis.com%2Fstatus_change NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/cloudaudit.googleapis.com%2Factivity NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/cloudaudit.googleapis.com%2Fdata_access NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/cloudaudit.googleapis.com%2Fsystem_event NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Fautoscaler NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Finstance_group_manager_events NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Fshielded_vm_integrity NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/run.googleapis.com%2Fstderr NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/run.googleapis.com%2Fstdout
  2. 查看與運算資源相關的記錄檔:

    gcloud logging logs list --filter="compute"

    輸出內容

    NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Fautoscaler NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Finstance_group_manager_events NAME: projects/qwiklabs-gcp-01-4b75909db302/logs/compute.googleapis.com%2Fshielded_vm_integrity
  3. 查看與 gce_instance 資源類型相關的記錄檔:

    gcloud logging read "resource.type=gce_instance" --limit 5
  4. 查看特定虛擬機器的記錄檔:

    gcloud logging read "resource.type=gce_instance AND labels.instance_name='gcelab2'" --limit 5

工作 6:實戰演練

您可以透過下列選擇題強化所學,確實掌握這個研究室的概念。

恭喜!

您學到如何啟動 Cloud Shell,並執行一些 gcloud 指令範例。

後續步驟/瞭解詳情

歡迎完成下列研究室,繼續學習之路:

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2024 年 1 月 26 日

研究室上次測試日期:2022 年 9 月 15 日

Copyright 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。