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 未使用的字元字串。您隨時可以更新這項資訊。
  • 所有 Google Cloud 專案的專案 ID 均不得重複,而且設定後即無法變更。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 帳戶收取本教學課程所用資源的費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。

刪除專案

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