執行和更新工作

透過本教學,使用 IBM Cloud® Code Engine 主控台執行批次作業。

工作會平行執行一個以上執行碼實例。 與處理 HTTP 請求的應用程式不同,作業被設計為運行一次並退出。 建立工作時,您可以指定每次執行工作時使用的工作量配置資訊。

開始之前

有關批次作業的更多信息,請參閱 批次作業工作負載

若要使用 Code Engine 主控台,請跳至 Code Engine 概觀

所有 Code Engine 使用者都必須擁有隨用隨付帳戶。 指導教學可能會產生成本。 請使用「成本估算器」,根據您的預估使用量生成成本估算。 如需詳細資訊,請參閱 Code Engine 定價

建立工作

使用 icr.io/codeengine/helloworld 映像建立 Code Engine 工作。 此工作列印 Hello from helloworld! I'm a task job!

  1. 開啟 Code Engine「概觀」頁面。
  2. 選擇「開始建立」。
  3. 請從「可用專案」清單中選取一個專案。 您也可以 建立新的。 請注意,您必須具有選取的專案才能建立工作。
  4. 選擇工作
  5. 輸入工作的名稱,並為儲存器映像檔指定 icr.io/codeengine/helloworld。 請為您的工作指派一個在該專案內具有唯一性的名稱。 在此範例中,您不需要修改環境變數或執行時期設定的預設值。 如需用於此範例之程式碼的相關資訊,請參閱 helloworld
  6. 按一下建立

執行工作

建立工作並指定工作量配置資訊之後,即可執行工作。 您可以置換部分配置資訊。

請注意,當您執行工作時,除非您指定映像檔的標籤,否則會下載並部署所參照容器映像檔的最新版本。 如果為映像檔指定標籤,則會將標籤映像檔用於工作。

  1. 請前往您的職缺頁面。

    1. Code Engine 的「專案」頁面中,點選您的專案名稱。
    2. 按一下「工作」,然後按一下「工作」分頁。
    3. 點擊您要執行的工作名稱。
  2. 從工作頁面中,按一下 提交工作,以提交基於現行配置的工作。

  3. 在「提交作業」窗格中,接受所有預設值,然後再次按一下 「提交作業」 以執行您的作業。

在「提交作業」窗格中,您可以檢視並選擇性地變更預設配置值,例如實例、CPU、記憶體、作業重試次數和作業逾時。 您可以指定要執行的平行作業實例的陣列大小陣列索引。 針對 陣列大小,提供此工作要平行執行的實例數。 對於陣列索引,為您的自訂索引集提供逗號分隔的清單。 例如,要使用一組自訂的執行此作業 5 索引,指定 3,12-14,25。 您也可以 指定工作陣列大小的自訂值,這會更新自動注入 JOB_ARRAY_SIZE 環境變數的值。 提交此工作之後,系統會在「工作詳細資料」頁面上顯示工作實例的狀態。 如果您在「提交作業」窗格中指定數組大小而不是數組索引,則從 Configuration 在作業詳細資料頁面的部分,此資訊以陣列索引的形式提供。

存取工作詳細資料

尋找工作的詳細資料。

提交工作之後,主控台會從「工作執行詳細資料」頁面中提供特定工作執行的結果。 從主控台,您也可以從「工作」頁面檢視工作及特定工作執行的詳細資料。

  • 若要檢視工作詳細資料,請按一下 工作 標籤,然後按一下您要使用的工作名稱。
  • 若要檢視特定工作執行的詳細資料,請按一下 工作執行 標籤,然後按一下您要使用的工作執行名稱。

如果您的作業的任何實例執行失敗,您可以採取以下操作:

  1. 一下「重新執行失敗的索引」 以針對失敗的索引再次執行作業。 在「提交作業」窗格中,檢視並選擇變更配置值,包括陣列索引陣列索引」部分會自動列出失敗工作執行實體的索引。

如需排解常見的工作執行索引錯誤,請參閱 瞭解工作執行索引可能失敗的原因

  1. 按一下 「提交作業」 以提交失敗索引的作業。

您可以在新增記載功能之後檢視工作日誌。 如需相關資訊,請參閱 從主控台檢視工作日誌

更新工作

您可以透過微調工作組態來管理您的工作,這包括更新程式碼、容器映像、程式碼參數或指令、執行時實例資源或環境變數。

當工作處於備妥狀態時,您可以更新工作。 讓我們更新之前建立的工作,透過更新環境變數來改變問候語和環境變數的輸出。 當一個要求被傳送到 icr.io/codeengine/helloworld 範例工作時,工作會讀取環境變數 TARGET 並列印 "Hello ${TARGET}!"。 若此環境變數為空,則會傳回 "Hello World!"。 如需更多關於本範例所用程式碼的資訊,請參閱 helloworld.

  1. 請前往您的職缺頁面。

    1. Code Engine 的「專案」頁面中,點選您的專案名稱。
    2. 按一下「工作」,然後按一下「工作」分頁。
    3. 請點擊您要更新的工作名稱。
  2. 配置> 環境變數 標籤中,按一下 新增環境變數。 新增名稱為 TARGET 且值為 Sunshine 的文字環境變數。 icr.io/codeengine/helloworld 會輸出訊息 Hello <value_of_TARGET>!>

  3. 按一下新增,以新增您的環境變數。

  4. 按一下部署

  5. 按一下 提交工作

  6. 從「提交工作」窗格中,檢閱並選擇性地變更預設配置值,例如實例、CPU、記憶體、工作重試次數及工作逾時。 您可以指定要執行的平行作業實例的陣列大小陣列索引。 針對 陣列大小,提供此工作要平行執行的實例數。 對於陣列索引,為您的自訂索引集提供逗號分隔的清單。 例如,要使用一組自訂的執行此作業 5 索引,指定 3,12-14,25。 再次按一下 提交工作,以執行您的工作。 系統會在「工作詳細資料」頁面上顯示工作實例的狀態。

  7. 透過 從主控台檢視工作日誌,此工作的輸出為 Hello Sunshine!

下一步

  • 建立工作之後,請提交工作以執行它。 請參閱 執行工作。 您可以多次執行工作。

  • 執行工作 之後,若要檢視工作及工作執行的詳細資料,請參閱 存取工作詳細資料

  • 既然已建立您的工作,請考慮讓工作以事件驅動。 透過使用事件訂閱,您可以透過 定期排程 來觸發工作,或設定工作以回應事件,例如 檔案上傳

  • 您可以在下列 任何 方式中 更新工作 及其參照程式碼,與您建立或先前更新工作的方式無關。

    • 如果您具有容器映像檔,則根據 Open Container Initiative(OCI)標準,您只需要提供映像檔的參照,這會在您建立 (或更新) 工作時指向容器登錄的位置。 您可以從 公用登錄專用登錄 中的映像檔建立 (或更新) 工作,然後從工作執行中存取參照的映像檔。

      如果您已使用 job create 指令建立工作,並指定 --build-source 選項以從本端或儲存庫來源建置容器映像檔,且您想要將工作變更為指向不同的容器映像檔,則必須先從工作中移除建置的關聯。 例如,執行 ibmcloud ce job update -n JOB_NAME --build-clear。 從工作中移除建置的關聯之後,您可以更新工作以參照不同的映像檔。

    • 如果您從位於 Git 儲存庫中的原始碼開始,則可以選擇讓 Code Engine 負責從來源建置映像檔,以及使用 單一 作業來建立 (或更新) 工作。 在此實務範例中,Code Engine 會將映像檔上傳至 IBM Cloud® Container Registry。 若要進一步瞭解,請參閱 從儲存庫原始碼建立工作。 如果您想要進一步控制映像檔的建置,則可以在建立 (或更新) 工作並執行工作之前,選擇使用 Code Engine 來 建置映像檔

    • 如果您是從位於本端工作站上的原始碼開始,則可以選擇讓 Code Engine 負責從來源建置映像檔,並使用 單一 CLI 指令來建立工作。 在此實務範例中,Code Engine 會將映像檔上傳至 IBM Cloud® Container Registry。 若要進一步瞭解,請參閱 使用 CLI 從本端原始碼建立工作。 如果您想要進一步控制映像檔的建置,則可以在建立 (或更新) 工作並執行工作之前,選擇使用 Code Engine 來 建置映像檔

    例如,您可以選擇讓 Code Engine 處理本端來源的建置,同時發展工作的來源開發。 然後,在映像檔成熟之後,您可以更新工作以參照您想要的特定映像檔。 您可以視需要重複此程序。

    當您執行更新的工作時,除非為映像檔指定標籤,否則會使用所參照儲存器映像檔的最新版本來執行工作。 如果為映像檔指定標籤,則會使用標記映像檔來執行工作。

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