使用工作及工作執行
瞭解如何在 IBM Cloud® Code Engine中執行工作。 工作會平行執行一個以上執行碼實例。 與處理 HTTP 要求的應用程式不同,工作設計為執行一次並結束。 建立工作時,您可以指定每次執行工作時使用的工作量配置資訊。
開始之前
- 了解 Code Engine 中批次作業工作負載的概念。 有關批次作業的更多信息,請參閱 批次作業工作負載。
- 規劃並選擇使程式碼作為 Code Engine 作業元件運作的方法。 有關要建立的 Code Engine 工作負載類型的更多信息,請參閱 規劃 Code Engine。
- 您可以透過兩種方式處理作業和作業運行:
- 如果您想要使用 Code Engine 主控台,請移至 Code Engine 概觀。
- 如果您想要使用 CLI,請 設定您的 Code Engine CLI 環境。
Code Engine 提供自訂資源定義 (CRD) 方法。 有關更多信息,請參閱 批處理 CRD 方法。
如何讓程式碼以 Code Engine 工作元件身分執行?
無論您的程式碼是作為本端檔案或 Git 儲存庫中的來源存在,還是您的程式碼是存在於公用或專用登錄中的容器映像檔,Code Engine 都提供了一種簡化的方式,可讓您將程式碼作為工作來執行。
-
如果您有容器映像檔,則根據 Open Container Initiative(OCI)標準,您只需要提供映像檔的參照,這會在您建立工作時指向容器登錄的位置。 您可以從 公用登錄 或 專用登錄 中的映像檔建立工作,然後從工作執行中存取參照的映像檔。
-
如果您從位於 Git 儲存庫中的原始碼開始,則可以選擇指向來源的位置,並且 Code Engine 會負責從來源建置映像檔,並使用 單一 作業來建立工作。 在此實務範例中,Code Engine 會將映像檔上傳至 IBM Cloud® Container Registry。 若要進一步瞭解,請參閱 從儲存庫原始碼建立工作。 如果您想要進一步控制映像檔的建置,則可以選擇先使用 Code Engine 來 建置映像檔,然後再建立工作並執行工作。
-
如果您是從本端工作站上的原始碼開始,則可以選擇指向來源的位置,而 Code Engine 會負責從來源建置映像檔,並使用 單一 CLI 指令來建立工作。 在此實務範例中,Code Engine 會將映像檔上傳至 IBM Cloud® Container Registry。 若要進一步瞭解,請參閱 使用 CLI 從本端原始碼建立工作。 如果您想要進一步控制映像檔的建置,則可以選擇先使用 Code Engine 來 建置映像檔,然後再建立工作並執行工作。
建立並執行工作之後,您也可以使用 任何 之前的方式來 更新工作,與您建立或先前更新工作的方式無關。
當您使用工作時,請記住下列重要事項。
- 與應用程式映像檔不同,工作映像檔沒有 HTTP Server。
- 映像檔中的可執行程式必須結束且代碼為零,才會被視為成功。
- 您可以從公用或專用映像檔登錄下載映像檔。 如需相關資訊,請參閱 存取容器登錄。
當您執行工作時,除非為映像檔指定標籤,否則會將所參照儲存器映像檔的最新版本用於工作執行。 如果為映像檔指定標籤,則會使用標記映像檔來執行工作。
HTTP 處理的考量
當您使用工作 (或應用程式) 時,請注意 Code Engine中的基本 HTTP 處理。 請參閱 HTTP 處理的考量
用於建立及執行工作的選項
瞭解您在建立或執行工作時可以指定的選項。 請注意,主控台與 CLI 之間的選項可能有所不同。
工作的記憶體及 CPU
部署工作時,您可以指定工作可以耗用的記憶體數量及 CPU。 視您的工作是運算密集、記憶體密集或平衡而定,這些數量可能有所不同。
依預設,會為您的工作指派 4 G 記憶體及 1 vCPU。 如需選取記憶體及 CPU 的相關資訊,請參閱 支援的記憶體及 CPU 組合。
使用指令及引數來建立及執行工作
當您建立或執行工作時,您可以定義要在執行時期使用之工作的指令及引數。
您可以使用 CLI 或主控台,將指令及引數新增至工作。
若要透過主控台新增指令及引數,請使用 Command 及 Arguments 欄位。
若要使用 CLI 來新增指令及引數,請將 --cmd 及 --args 選項新增至 job create 或 jobrun submit 指令。
如需定義指令和引數的相關資訊,請參閱 定義 Code Engine 工作量的指令和引數。
使用環境變數建立及執行工作
您可以將環境變數定義及設定為可在執行時期供工作使用的鍵值組。
您可以在建立工作時,或在從主控台或使用 CLI 更新現有工作時,定義環境變數。 您可以為完全參照 configmap (或密鑰) 或參照 configmap (或密鑰) 中個別索引鍵的工作建立環境變數。
如需定義環境變數的相關資訊,請參閱 使用環境變數。
建立及執行具有密鑰及 configmap 的工作
在 Code Engine中,工作可以使用環境變數來使用密鑰及 configmap。
密鑰和 configmap 都是鍵值組。 當對映至環境變數時,會設定 NAME=VALUE 關係,以便環境變數的名稱對應於那些對映中每一個項目的「索引鍵」,且環境變數的值是該索引鍵的「值」。
您的工作可以使用環境變數來完整參照 configmap (或密碼),或參照 configmap (或密碼) 中的個別索引鍵。
如需相關資訊,請參閱 使用環境變數來參照密鑰 及 使用環境變數來參照配置對映。
如果我想要我的工作無限期執行呢?
通常,工作設計為執行一次,並以執行時間上限結束。
不過,假設您想要持續輪詢協力廠商資料儲存庫。 您可以選擇建立應用程式; 不過,應用程式埠必須保持開啟狀態,才能處理 HTTP 要求。 相反地,如果您不想要處理 HTTP 要求,則可以選擇建立在沒有執行時間上限且未逾時的情況下執行的工作。
使用 Code Engine,您可以選擇工作的 mode。 對於執行時間上限適用的工作,請對工作使用 task 模式。 根據工作重試限制,重新啟動失敗的實例。 此模式是工作的預設行為。
如果您想要建立可以無限期執行且不會逾時的工作,請針對您的工作使用 daemon 模式。 失敗的實例會無限期自動重新啟動。
使用 Code Engine,您只需為您使用的資源付費。 當您的工作以 daemon 模式執行時,請注意,在您刪除工作之前,工作一律在執行中。
如需相關資訊,請參閱 建立及執行無限期執行的工作 指令。
工作配額考量
當您使用應用程式、函數及批次工作時,這些資源會在 Code Engine 專案的環境定義內執行。 資源配額是根據每個專案來定義,且限制適用於應用程式、功能及批次工作。
如需 Code Engine 限制的相關資訊,請參閱 Code Engine的限制和配額。
清理已完成的工作運行
完成的工作執行會在一週後被自動刪除。
下一步
既然您熟悉使用 Code Engine 工作的主要概念,您是否準備好建立並執行工作? 請參閱:
- 從公用登錄中的映像檔建立工作。
- 在 IBM Cloud Container Registry 中從映像檔建立工作。
- 從專用登錄中的映像檔建立工作。
- 從儲存庫原始碼建立工作。
- 執行工作。
如需更多有關工作的資訊,請參閱