1. 總覽
Cloud Run 是全代管的無伺服器平台,能夠讓您執行可透過 HTTP 要求叫用的無狀態容器。Cloud Run 採用無伺服器技術,可為您省去所有基礎架構管理工作,讓您專心處理最重要的事物,也就是建構出色的應用程式。
這項服務以 Knative 打造而成,可讓您透過 Cloud Run 以全代管的方式執行容器,或是透過 Cloud Run on GKE 在您的 Google Kubernetes Engine 叢集中執行容器。
學習目標
在本研究室中,您將瞭解如何執行下列操作:
- 部署 Cloud Run 應用程式
必要條件
- 本研究室假設您熟悉 Cloud 控制台和 Cloud Shell 環境。
2. 設定和需求
Cloud 專案設定
- 登入 Google Cloud 控制台,建立新專案或重複使用現有專案。如果您還沒有 Gmail 或 Google Workspace 帳戶,請先建立帳戶。
- 「專案名稱」是這項專案參與者的顯示名稱。這是 Google API 未使用的字元字串。您隨時可以更新這項資訊。
- 所有 Google Cloud 專案的專案 ID 均不得重複,而且設定後即無法變更。Cloud 控制台會自動產生一個不重複的字串。但通常是在乎它何在在大部分的程式碼研究室中,您必須參照專案 ID (通常為
PROJECT_ID
)。如果您對產生的 ID 不滿意,可以隨機產生一個 ID。此外,您也可以自行嘗試,看看系統是否提供該付款方式。在完成這個步驟後就無法變更,而且在專案期間仍會保持有效。 - 資訊中的第三個值是專案編號,部分 API 會使用這個編號。如要進一步瞭解這三個值,請參閱說明文件。
- 接下來,您需要在 Cloud 控制台中啟用計費功能,才能使用 Cloud 資源/API。執行這個程式碼研究室並不會產生任何費用,如果有的話。如要關閉資源,以免系統產生本教學課程結束後產生的費用,您可以刪除自己建立的資源,或刪除整個專案。Google Cloud 的新使用者符合 $300 美元免費試用計畫的資格。
環境設定
如要啟用 Cloud Shell,請按一下搜尋列右側的圖示。
在 Cloud Shell 中啟用 Cloud Run API:
gcloud services enable run.googleapis.com
如果出現授權提示,請點選「授權」以繼續。
這應該會產生類似下列內容的成功訊息:
Operation "operations/acf.p2-327036483151-73d90d00-47ee-447a-b600-a6badf0eceae" finished successfully.
3. 準備申請
首先,您會準備一個以 Express 為基礎的簡易型 Node.js 應用程式,用於回應 HTTP 要求。
在 Cloud Shell 中建立名為 starter-nodejs
的新目錄,然後變更為該目錄:
mkdir starter-nodejs
cd starter-nodejs
執行下列指令以建立 package.json
檔案:
cat > ./package.json << EOF
{
"name": "cloudrun-starter-app",
"version": "1.0.0",
"description": "Node.js Starter Application",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "",
"license": "Apache-2.0",
"dependencies": {
"express": "^4.18.2"
}
}
EOF
上述檔案包含 start 指令碼指令和 Express 網頁應用程式架構的依附元件。
接著,在同一個目錄中執行下列指令,建立 index.js
檔案:
cat > ./index.js << EOF
const express = require('express');
const app = express();
app.get('/', (req, res) => {
console.log('Received a request.');
res.send("Hello Cloud Run!");
});
const port = process.env.PORT || 8080;
app.listen(port, () => {
console.log('Listening on port', port);
});
EOF
這段程式碼會建立基本的網路伺服器,藉此監聽 PORT 環境變數定義的通訊埠。您的應用程式現已完成,您可以開始容器化及部署。
4. 部署 Cloud Run 應用程式
執行下列指令來部署應用程式:
gcloud run deploy starter-app \
--source . \
--region us-central1 \
--allow-unauthenticated \
--max-instances=3
確認建立 Artifact Registry 存放區:
Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [us-central1] will be created. Do you want to continue (Y/n)? y
透過先前的指令,將執行下列步驟:
在 Cloud 控制台中瀏覽這些步驟的輸出內容:Cloud Build、Cloud Storage、Artifact Registry 和 Cloud Run。
5. 恭喜!
恭喜!您已將應用程式部署至 Cloud Run。
本文涵蓋的內容:
- 如何在 Cloud Run 部署範例應用程式
下一步:
探索其他 Cymbal Eats 程式碼研究室:
- 使用 Eventarc 觸發 Cloud Workflows
- 從 Cloud Storage 觸發事件處理
- 從 Cloud Run 連線至 Private CloudSQL
- 從 Cloud Run 連線至全代管資料庫
- 透過 Identity Aware Proxy (IAP) 提供安全的無伺服器應用程式
- 使用 Cloud Scheduler 觸發 Cloud Run 工作
- 安全地部署至 Cloud Run
- 保護 Cloud Run 輸入流量
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本教學課程所用資源的費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。
刪除專案
如要避免付費,最簡單的方法就是刪除您針對教學課程建立的專案。