開始使用 IBM Cloud Code Engine

IBM Cloud® Code Engine 是一個全面管理的無伺服器平台,可執行您的容器化工作負載,包括 Web 應用程式、微服務、事件驅動函式或批次作業。Code Engine 甚至可從您的原始程式碼為您建立容器映像。 由於所有這些工作負載都託管在相同的 Kubernetes 基礎架構中,因此可以無縫協同運作。 Code Engine 的設計理念,是讓您能專注於編寫程式碼,而非需用於託管程式碼的基礎架構。

首先,瞭解 Code Engine 的一些 關鍵詞,然後從以下選項之一開始。

Code Engine 專案、應用程式、工作、功能和車隊是什麼?

在開始之前,請先熟悉 Code Engine 的一些關鍵名詞。

Code Engine 條款
術語 說明
專案 專案是 Code Engine 實體的組合,例如應用程式、工作和建置。 專案用於管理資源,並提供其實體的存取權。
應用程式 應用程式(或稱 app)會執行您的程式碼,為 HTTP 請求提供服務。 應用程式有一個 URL 來處理傳入的要求。 應用程式的執行實體數量會根據進入的工作負荷自動增加或減少(至零)。
建置 Code Engine 支援從 Dockerfile 或 Cloud Native Buildpacks 建立。
功能 函數是一種無狀態的程式碼片段,可執行回應 HTTP 請求的任務。
工作 一個作業會並行執行一個或多個可執行程式碼的實體。 與包含 HTTP Server 以處理傳入請求的應用程式不同,工作的設計是執行一次後就退出。
Fleet 一個機群,也稱為無伺服器機群,執行一個或多個使用者程式碼的實體,以完成一系列指定的任務。 車隊的設計是為了處理大量、繁重的工作負載。 與工作不同的是,機群是單一租用者、可執行動態任務佇列,並可完全控制機器設定檔組態。 如需詳細資訊,請參閱 工作與車隊有何差異?

如需關於術語的詳細資訊,請參閱 Code Engine 術語

不確定該如何選擇? 請參閱 規劃 Code Engine

應用程式、工作、功能和車隊如何比較?

比較 Code Engine 的應用程式、工作、功能及車隊
特性 應用程式 工作 功能 Fleet
執行時間(持續時間) 長時間運行(每次請求 10 分鐘) 長時間運作 (長達 24 小時) 短程 (2 分鐘或更短) 長時間運作(數分鐘至數星期)
啟動延遲 預定開始
終止 連續執行 運行至完成 運行至完成 運行至完成
呼叫 按要求或永久運行 已排定 根據要求,即時 已排定
程式設計模型 以容器為基礎的建立與執行 以容器為基礎的建立與執行 特定語言的原始碼檔案和相依性元資料 以容器為基礎的建立與執行
平行化 平行執行、靈活 低到中等的平行執行 高度平行執行 高度平行執行與佇列
橫向擴充 根據請求數量 根據工作工作量定義 基於事件或直接呼叫 基於任務和並發實例的數量
隔離 多租戶 多租戶 多租戶 單一承租戶
GPU 支援
對機器配置的控制 不控制 不控制 不控制 完整控制權
VPC 連線 穿越私密小徑 穿越私密小徑 穿越私密小徑 原生(透過子網區塊)
已針對下列項目進行最佳化: 長時間運行、高度複雜的工作負載和隨選擴充 具有高資源需求的排程或計劃工作負載 啟動時間與快速擴充 大規模且運算密集型的工作負載

如需詳細資訊,請參閱 規劃 Code Engine

部署您的第一個 Code Engine 應用程式

使用 icr.io/codeengine/helloworld 圖片建立您的第一個 Code Engine 應用程式。

  1. 開啟 Code Engine 控制台。
  2. 選取開始建立
  3. 請從「可用專案」清單中選取一個專案。 您也可以 建立一個新的。 請注意,您必須有選取的專案才能部署應用程式。
  4. 請選擇應用程式
  5. 輸入應用程式的名稱,例如 myapp。 請為您的應用程式選取一個在該專案內具有唯一性的名稱。
  6. 選取「使用現有容器映像檔」,並將映像檔參考設定為 icr.io/codeengine/helloworld。 在本範例中,您不需要修改預設值。 如需更多關於本範例所用程式碼的資訊,請參閱 helloworld.
  7. 按一下建立
  8. 應用程式狀態變更為 Ready 之後,您就可以測試應用程式。 按一下測試應用程式,然後按一下測試應用程式窗格中的傳送請求。 若要在網頁中開啟應用程式,請按一下應用程式 URL

輸出範例

Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-5b5895fdf7-abcd
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1
z=Set env var 'SHOW' to see all variables

您將第一個應用程式部署到 Code Engine 並進行測試。 前往 教學:部署應用程式在 Code Engine 中使用 應用程式,以嘗試應用程式的更多選項。

執行您的第一個 Code Engine 工作

使用 icr.io/codeengine/helloworld 映像建立並執行您的第一個 Code Engine 作業。

  1. 開啟 Code Engine 控制台。
  2. 選取開始建立
  3. 請從「可用專案」清單中選取一個專案。 您也可以 建立一個新的。 請注意,您必須有選取的專案才能建立工作。
  4. 選擇工作
  5. 請輸入工作名稱,例如:myjob。 請為您的工作指定一個在該專案內具有唯一性的名稱。
  6. 為影像參考指定 icr.io/codeengine/helloworld。 在本範例中,您不需要修改預設值。 如需更多關於本範例所用程式碼的資訊,請參閱 helloworld.
  7. 按一下建立
  8. 從您的作業頁面,按一下提交作業,以根據目前的組態提交作業。
  9. 在 Submit job(提交工作)窗格中,接受所有預設值,然後再按一下 Submit job (提交工作)以執行工作。

啟用記錄時,記錄中會顯示以下範例。 若要瞭解如何在啟用記錄的情況下執行工作,請參閱 檢視記錄

記錄實例的輸出範例

Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_DOMAIN=us-east.codeengine.appdomain.cloud
CE_JOB=myjob
CE_JOBRUN=myjob-jobrun-xgpmz
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myjob-jobrun-abcde-0-0
JOB_INDEX=0
...
z=Set env var 'SHOW' to see all variables

您從主控台建立並執行工作。 前往 教學:執行工作在 Code Engine 中執行工作,以嘗試更多工作選項。

執行您的第一個函式

利用範例函式代碼建立並執行您的第一個 Code Engine 函式。

  1. 開啟 Code Engine 控制台。
  2. 選取開始建立
  3. 請從「可用專案」清單中選取一個專案。 您也可以 建立一個新的。 請注意,您必須有選取的專案才能建立函式。
  4. 選擇功能
  5. 請輸入函數名稱。 請為您的函式取一個在該專案內具有唯一性的名稱。
  6. 請選擇《 Node.js 》第 22
  7. 按一下建立。 您的函數是以範例程式碼建立的。 您可以在 Function -> Configuration 頁面編輯此代碼。
  8. 按一下測試功能,然後按一下測試功能窗格中的傳送請求。 若要在網頁中開啟功能,請按一下功能 URL

輸出範例

{
  "args": {
    "__ce_headers": {
      "Accept-Encoding": "gzip, deflate, br",
      "User-Agent": "got (https://github.com/sindresorhus/got)",
      "X-Request-Id": "12340a7b-11c0-4de3-f16b-a6abc27f4146"
    },
    "__ce_method": "GET",
    "__ce_path": "/"
  },
  "env": {
    "HOME": "/root",
    "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/lib/nodejs/bin",
    "PWD": "/nodejsAction",
    "SHLVL": "1",
    "_": "/usr/local/lib/nodejs/bin/node",
    "__OW_ALLOW_CONCURRENT": "true",
    "container": "oci"
  }
}

您將第一個函式部署到 Code Engine 並進行測試。 前往 從本機來源執行函數使用函數工作,以嘗試函數的更多選項。

經營您的第一個車隊

使用 icr.io/codeengine/helloworld 映像建立並執行您的第一支 Code Engine 船隊。

  1. 確保您已完成執行車隊 所需的準備步驟
  2. 開啟 Code Engine 控制台。
  3. 選取開始建立
  4. 請從「可用專案」清單中選取一個專案。 您也可以 建立一個新的。 請注意,您必須有選取的專案才能執行機群。
  5. 選擇車隊
  6. 請輸入艦隊名稱。 請使用在該專案內所有船隊中皆為唯一的名稱。
  7. 為影像參考指定 icr.io/codeengine/helloworld。 在本範例中,您不需要修改預設值。 如需更多關於本範例所用程式碼的資訊,請參閱 helloworld.
  8. 按一下 Create,

啟用記錄時,記錄中會顯示以下範例。 若要瞭解如何在啟用記錄的情況下執行車隊,請參閱 檢視車隊記錄

記錄實例的輸出範例

Hello from helloworld! I'm a task of fleet: fleet-abcdef1234! Task Index: 4, Task ID: 2b2b2b2b-3c3c-4d4d-5e5e-6f6f6f6f6f6f
Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.eu-de.codeengine.cloud.ibm.com
CE_CPU=1
CE_DOMAIN=eu-de.codeengine.appdomain.cloud
CE_FLEET_ID=1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e
CE_FLEET_NAME=fleet-abcdef1234
...
z=Set env var 'SHOW' to see all variables

您從控制台建立並執行您的艦隊。 前往 經營艦隊,嘗試艦隊的更多選項。

從原始碼建立您的第一個容器映像

建立並執行您的第一個 Code Engine 建立,然後在應用程式中部署容器影像。

Code Engine 可以自動將圖片推送到您帳戶中的 Container Registry 命名空間。 它甚至可以為您建立命名空間。 若要將圖像推送到不同的 Container Registry 帳戶或私人 Docker Hub 帳戶,請參閱 新增私人容器註冊表的存取權

  1. 開啟 Code Engine 控制台。
  2. 選取開始建立
  3. 請從「可用專案」清單中選取一個專案。 您也可以 建立一個新的。 請注意,您必須有選取的專案才能部署應用程式。
  4. 請選擇應用程式
  5. 請輸入應用程式的名稱。 請為您的應用程式選取一個在該專案內具有唯一性的名稱。
  6. 請選擇「從原始碼建立容器映像」。
  7. 按一下指定建立詳細資訊
  8. 接受每個頁面的預設值,按一下下一步,然後按一下完成
  9. 按一下建立

在您的建立執行提交後,建立的容器映像會傳送到 Container Registry,然後您的應用程式會為您拉取映像並進行部署。 應用程式狀態變更為 Ready 之後,您就可以試用了。 按一下測試應用程式,然後按一下測試應用程式窗格中的傳送請求。 若要在網頁中開啟應用程式,請按一下應用程式 URL

輸出範例

Hello World from:
     ___  __  ____  ____
    / __)/  \(    \(  __)
   ( (__(  O )) D ( ) _)
    \___)\__/(____/(____)
 ____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
 ) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-6db6d89dc7-k6qc7
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1

您向 Code Engine 提交源代碼,並建立容器映像,然後將其部署到應用程式中 - 所有這一切都在一個介面上完成。

前往 建立容器影像,探索並嘗試更多建立選項。

接下來的步驟 Code Engine

進一步瞭解如何從主控台或使用 Code Engine CLI 執行這些 Code Engine 任務。

尋找更多程式碼範例? 查看 Samples for IBM Cloud Code Engine GitHub repo