准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
您最近加入一間 IT 公司,擔任雲端環境開發人員,這間公司的主要雲端服務供應商 (CSP) 是 Google Cloud。您收到指示,要在雲端環境建構無伺服器的無狀態網頁應用程式,因此須採用 Google Cloud 提供的 Cloud Run 服務。需要考量的一些面向包括:
您在前一間公司用過 Azure,知道如何運用 Azure App Service 來託管網頁應用程式。Azure 負責管理應用程式採用的基礎架構設定,而您可以透過下列任一種方式將程式碼導入 Azure App Service:
為了建立 App 服務,您指定了一個類別來定義應用程式所需的運算能力、資源數量和其他功能。
您建立了映像檔,並透過 Docker 上傳至 Azure Container Registry,然後按照先前用於程式碼的相同流程,將這些映像檔導入容器。
您採用水平縮減和水平擴展規則等最佳做法,判斷應用程式所需的運算資源和執行個體數量,盡可能降低對費用的影響。
託管於 Azure App Service 的無伺服器容器化應用程式如下所示:
現在您將學習如何在 Google Cloud 部署應用程式。
Cloud Run 是代管運算平台,能夠讓您執行可透過 HTTP 要求叫用的無狀態容器。Cloud Run 採用無伺服器技術,可為您省去所有基礎架構管理工作,讓您專心處理最重要的事:建構出色的應用程式。
Cloud Run 是以 Knative 打造而成,可讓您透過 Cloud Run 以全代管的方式執行容器,或是透過 Cloud Run on GKE 在您的 Google Kubernetes Engine 叢集中執行容器。
透過這個實驗室,您可以瞭解如何建立簡易容器化應用程式映像檔,並部署至 Cloud Run。
在本實驗室中,您將瞭解如何執行下列工作:
在每個研究室中,您都能在固定時間內免付費建立新的 Google Cloud 專案,並使用一組資源。
請透過無痕式視窗登入 Qwiklabs。
請記下研究室的存取時間 (例如 1:15:00),並確保自己能在時間限制內完成作業。
研究室不提供暫停功能。如有需要,您可以重新開始,但原先的進度恕無法保留。
準備就緒後,請按一下「Start lab」。
請記下研究室憑證 (使用者名稱和密碼),這組資訊將用於登入 Google Cloud 控制台。
按一下「Open Google Console」。
按一下「Use another account」,然後複製這個研究室的憑證,並貼入提示訊息。
如果使用其他憑證,系統會顯示錯誤或向您收取費用。
接受條款,然後略過資源復原頁面。
按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側面板會顯示必須在這個實驗室使用的臨時憑證。
複製使用者名稱,然後點選「Open Google Console」。接著,研究室會啟動相關資源並開啟另一個分頁,當中顯示「Choose an account」頁面。
點選「Choose an account」頁面中的「使用其他帳戶」,「Sign in」頁面隨即開啟。
貼上您在「連線詳細資訊」面板中複製的使用者名稱,然後複製並貼上密碼。
Cloud 控制台稍後會在這個分頁中開啟。
Google Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。
Google Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
在 Cloud 控制台的右上方找到工具列,然後按一下「開啟 Cloud Shell」按鈕。
按一下「繼續」。
佈建並連線至環境的作業需要一些時間才能完成。連線建立完成即代表已通過驗證,而且專案已設為您的「PROJECT_ID」。示例如下:
gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵完成功能。
輸出內容:
輸出內容示例:
輸出內容:
輸出內容示例:
下方的參考清單列出了幾個非常基本的 Linux 指令,這個研究室的操作說明或程式碼區塊可能會提及這些指令。
| 指令 --> | 動作 | . | 指令 --> | 動作 |
|---|---|---|---|---|
| mkdir (建立目錄) | 建立新的資料夾 | . | cd (變更目錄) | 將位置變更為其他資料夾 |
| ls (列出) | 列出目錄中的檔案和資料夾 | . | cat (串連) | 在不使用編輯器的情況下讀取檔案內容 |
| apt-get update | 更新套件管理工具程式庫 | . | ping | 向主機傳送信號來測試可連性 |
| mv (移動) | 移動檔案 | . | cp (複製) | 建立檔案副本 |
| pwd (顯示工作目錄) | 傳回目前的位置 | . | sudo (超級使用者權限) | 授予更高層級的管理員權限 |
在這項工作中,您將建構一個以 Express 為基礎的簡易型 Node.js 應用程式,用於回應 HTTP 要求。
helloworld 的新目錄,然後查看當中內容:接下來要建立及編輯檔案。您可以使用 vi、emac 或 nano 來編輯檔案,也能在 Cloud Shell 點選「開啟編輯器」按鈕,運用 Cloud Shell 程式碼編輯器來編輯檔案。
建立 package.json 檔案,並在當中新增下列內容:
最重要的是,上述檔案包含 start 指令碼,以及 Express 網頁應用程式框架的依附元件。
依序按下 Ctrl+X 鍵和 Y 鍵,儲存 package.json 檔案。
接著,在同一個目錄中建立 index.js 檔案,並將下列幾行內容複製到檔案中:
這段程式碼會建立基本的網路伺服器,藉此監聽 PORT 環境變數定義的通訊埠。應用程式現已就緒,您可以開始將應用程式容器化,並上傳至 Container Registry。
index.js 檔案。Dockerfile 的新檔案,並加入下列內容:依序按下 Ctrl+X 鍵和 Y 鍵,儲存 Dockerfile 檔案。
接著,從內含 Dockerfile 的目錄執行下列指令,運用 Cloud Build 建立容器映像檔。(請留意指令中的 $GOOGLE_CLOUD_PROJECT 環境變數,內含這個實驗室的專案 ID):
Cloud Build 是在 Google Cloud Platform 執行建構作業的服務。只需一個指令,這項服務就會在 Docker 容器中執行一系列的建構步驟、產生應用程式容器 (或其他構件),並推送至 Artifact Registry。
容器推送到 Artifact Registry 後,您會看到包含映像檔名稱 (gcr.io/[PROJECT-ID]/helloworld) 的「SUCCESS」(成功) 訊息。映像檔會儲存於 Artifact Registry,日後可以視需求重複使用。
docker 指令,透過 Cloud Shell 在本機執行及測試應用程式:此動作應會開啟瀏覽器視窗,並在其中顯示「Hello World!」的訊息。您也能直接執行 curl localhost:8080 指令。
docker 指令無法提取遠端的容器映像檔,請執行下列指令:gcloud auth configure-docker
上述指令中的 allow-unauthenticated 旗標會將您的服務設為可公開存取。
service name 時,請按下 Enter 鍵。稍候片刻,等待部署作業完成。
部署成功之後,指令列會顯示服務網址:
您現在可以在任何瀏覽器視窗開啟服務網址,查看已部署的容器。
恭喜!您已將一個封裝在容器映像檔中的應用程式部署到 Cloud Run。Cloud Run 會自動水平擴充您的容器映像檔,以處理收到的要求,然後在需求減少時縮減規模。在您自己的環境中,您只需為處理要求期間使用的 CPU、記憶體和網路支付費用。
在本實驗室中,您是使用 gcloud 指令列執行各項操作。您也可以透過 Cloud 控制台使用 Cloud Run。
helloworld 服務:不使用服務時,Cloud Run 不會收費,但您可能仍須針對已建構的容器映像檔,支付儲存費用。
helloworld 映像檔:系統提示您繼續操作時,請輸入 Y 並按下 Enter 鍵。
執行下列指令,刪除 Cloud Run 中的服務:
Y 並按下 Enter 鍵。您已完成這個實驗室中的所有工作!
Google Cloud Run 和 Azure App Service 都屬於無伺服器運算服務,讓開發人員能運用可擴充且符合成本效益的方式,執行容器化應用程式,不過這兩項服務還是有些許不同。
以下是兩項服務主要的異同處。
相似處:
差異處:
如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。
您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)。
星級評等代表您的滿意程度:
如果不想提供意見回饋,您可以直接關閉對話方塊。
如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验