Cloud Run 入門教學課程

1. 總覽

Cloud Run 是全代管無伺服器平台,能讓您執行可透過 HTTP 要求叫用的無狀態容器。Cloud Run 採用無伺服器技術,為您省去所有基礎架構管理工作,讓您專心處理最重要的事:建構出色應用程式。

這項服務是以 Knative 為基礎建構而成,可讓您選擇透過 Cloud Run 全代管的方式執行容器,或是透過 Cloud Run on GKE 在您的 Google Kubernetes Engine 叢集中執行容器。

學習目標

在本實驗室中,您將瞭解如何執行下列操作:

  • 部署 Cloud Run 應用程式

必要條件

  • 本實驗室假設您已熟悉 Cloud 控制台和 Cloud Shell 環境。

2. 設定和需求

設定 Cloud 專案

  1. 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果沒有 Gmail 或 Google Workspace 帳戶,請先建立帳戶

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • 專案名稱是這個專案參與者的顯示名稱。這是 Google API 未使用的字元字串。你隨時可以更新該位置資訊。
  • 專案 ID 在所有 Google Cloud 專案中都是不重複的,而且設定後即無法變更。Cloud 控制台會自動產生不重複的字串,通常您不需要在意這個字串。在大多數程式碼研究室中,您需要參照專案 ID (通常會標示為 PROJECT_ID)。如果您不喜歡產生的 ID,可以產生另一個隨機 ID。你也可以嘗試自訂名稱,看看是否可用。完成這個步驟後就無法變更,且專案期間都會維持這個設定。
  • 請注意,部分 API 會使用第三個值,也就是「專案編號」。如要進一步瞭解這三種值,請參閱說明文件
  1. 接著,您需要在 Cloud 控制台中啟用帳單,才能使用 Cloud 資源/API。完成本程式碼研究室的費用應該不高,甚至完全免費。如要關閉資源,避免產生本教學課程以外的費用,您可以刪除自己建立的資源,或刪除整個專案。Google Cloud 新使用者可參加價值$300 美元的免費試用計畫。

環境設定

按一下搜尋列右側的圖示,啟用 Cloud Shell。

ecdc43ada29e91b.png

在 Cloud Shell 中啟用 Cloud Run API:

gcloud services enable run.googleapis.com

如果系統提示您授權,請點選「授權」繼續操作。

6356559df3eccdda.png

這時應該會顯示類似以下的成功訊息:

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

執行上一個指令後,系統會執行下列步驟:

d661616f9b2fffcf.png

在 Cloud 控制台中查看這些步驟的輸出內容:Cloud BuildCloud StorageArtifact RegistryCloud Run

f536961280192919.png

5. 恭喜!

恭喜!您已將應用程式部署至 Cloud Run。

涵蓋內容:

  • 如何在 Cloud Run 上部署入門應用程式

後續步驟:

探索其他 Cymbal Eats 程式碼研究室:

清除所用資源

如要避免系統向您的 Google Cloud 帳戶收取本教學課程所用資源的費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。

刪除專案

如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。