分享方式:


持續作業及工作輸出

在 Azure Batch 中執行的工作,可能會在執行時產生輸出資料。 工作輸出的資料通常需要加以儲存,才能供作業中的其他工作、執行作業的用戶端應用程式 (或兩者) 擷取。 工作會將輸出資料寫入 Batch 計算節點的檔案系統,但當它重新安裝映像,或當節點離開集區時,節點上的所有資料都會遺失。 工作可能也會有檔案保留期,在此期間之後,會將工作所建立的檔案刪除。 基於這些理由,請務必將您稍後需要的工作輸出保存至資料存放區,例如 Azure 儲存體

如需 Batch 中的儲存體帳戶選項,請參閱 Batch 帳戶與 Azure 儲存體帳戶

工作輸出的一些常見範例包括:

  • 工作處理輸入資料時,會建立檔案。
  • 與工作執行相關聯的記錄檔。

此文章說明保存輸出資料的各種選項。 您可以將輸出資料從 Batch 工作和作業保存到 Azure 儲存體或其他存放區。

保存輸出的選項

有多種方式可以保存輸出資料。 為您的案例選擇最佳方法:

Batch 服務 API

您可以使用 Batch 服務 API 來保存輸出資料。 當您將工作新增至作業將工作集合新增至作業時,針對工作資料指定 Azure 儲存體中的輸出檔案。

如需詳細資訊,請參閱使用 Batch 服務 API 將工作資料保存到 Azure 儲存體

Batch 檔案慣例程式庫

Batch 檔案慣例標準 (英文) 是一組選擇性的慣例,用於為 Azure 儲存體中的工作輸出檔案命名。 該標準會根據作業和工作的名稱,提供檔案目的地容器和 Blob 路徑的命名慣例。

使用檔案慣例標準來為輸出資料檔案命名是選擇性的。 您可以選擇改成為目的地容器和 Blob 路徑命名。 如果您使用檔案慣例標準,就可以在 Azure 入口網站中檢視您的輸出檔案。

如果您要使用 C# 和 .NET 建置 Batch 解決方案,您可以使用適用於 .NET 的 Batch 檔案慣例程式庫 (英文)。 該程式庫會將輸出檔案移至 Azure 儲存體,並根據 Batch 檔案慣例標準來為目的地容器和 Blob 命名。

如需詳細資訊,請參閱使用適用於 .NET 的 Batch 檔案慣例程式庫將作業和工作資料保存到 Azure 儲存體

Batch 檔案慣例標準

如果您要使用 .NET 以外的程式設計語言,您可以在自己的應用程式中實作 Batch 檔案慣例標準 (英文)。 使用這個方法的時機:

  • 您想要使用通用的命名配置。
  • 您想要在 Azure 入口網站中檢視工作輸出。

自訂檔案移動解決方案

您也可以實作自己的完整檔案移動解決方案。 使用這個方法的時機:

  • 您想要將工作資料保存到 Azure 儲存體以外的資料存放區。 例如,您想要將檔案上傳至資料存放區,例如 Azure SQL 或 Azure DataLake。 建立自訂指令碼或可執行檔以上傳至該位置。 然後,在執行主要可執行檔之後,在命令列上呼叫自訂指令碼或可執行檔。 例如,在 Windows 節點上,呼叫 doMyWork.exe && uploadMyFilesToSql.exe
  • 您想要針對初始結果建立檢查點或進行早期上傳。
  • 您需要保持更精確地控制錯誤處理。 例如,您想要使用工作相依性動作,以根據特定的工作結束代碼進行特定的上傳動作。

設計考量

當您設計 Batch 解決方案時,請考慮下列因素。

計算節點通常是暫時性的,特別是在已啟用自動調整功能的 Batch 集區中。 您只能在下列情況下看見工作的輸出:

  • 當工作執行所在的節點存在時。
  • 在您為工作設定的檔案保留期間。

當您在 Azure 入口網站中檢視 Batch 工作,並選取 [節點上的檔案] 時,您將會看見該工作的所有檔案,而不只是輸出檔案。 若要直接從您集區中的計算節點擷取工作輸出,您需要檔案名稱,以及該檔案在節點上的輸出位置。

如果您想要將工作輸出資料保留較長的時間,請將工作設定為將其輸出檔案上傳至資料存放區。 建議使用 Azure 儲存體作為資料存放區。 在 Batch 服務 API 中,有將工作輸出資料寫入 Azure 儲存體的整合功能。 您可以使用其他持久儲存體選項來保留您的資料。 不過,您必須自行撰寫其他儲存體選項的應用程式邏輯。

若要檢視您位於 Azure 儲存體中的輸出資料,請使用 Azure 入口網站或 Azure 儲存體用戶端應用程式,例如 Azure 儲存體總管。 記下您輸出檔案的位置,並直接移至該位置。

後續步驟