共用方式為


JobPreparationTask 類別

作業準備工作,在任何指定的計算節點上作業的任何工作之前執行。

您可以使用作業準備準備節點來執行作業的工作。 作業準備中經常執行的活動包括:下載作業中所有工作所使用的通用資源檔。 作業準備工作可以將這些通用資源檔下載到節點上的共用位置。 (AZ_BATCH_NODE_ROOT_DIRshared) 或啟動節點上的本機服務,讓該作業的所有工作都能與其通訊。 如果作業準備工作失敗 (,則會在結束代碼 0) 結束之前耗盡其重試計數,Batch 將不會在節點上執行此作業的工作。 計算節點仍無法執行此作業的工作,直到重新建立映射為止。 計算節點會保持作用中,而且可用於其他作業。 作業準備工作可以在相同的節點上執行多次。 因此,您應該撰寫作業準備工作來處理重新執行。 如果節點重新開機,作業準備工作會在排程作業的任何其他工作之前,在計算節點上再次執行,如果 rerunOnNodeRebootAfterSuccess 為 true,或作業準備工作先前未完成。 如果重新建立節點映射,作業準備工作會在排程作業的任何工作之前再次執行。 批次會在節點上觸發復原作業時重試工作。 復原作業的範例包括 (,但不限於重新開機狀況不良的節點時) ,或因主機失敗而計算節點消失。 由於復原作業的重試與 無關,而且不會計入 maxTaskRetryCount。 即使 maxTaskRetryCount 為 0,也可能發生因復原作業而造成內部重試。 因此,所有工作都應該是等冪的。 這表示工作必須容許中斷並重新啟動,而不會造成任何損毀或重複的資料。 長時間執行工作的最佳做法是使用某種形式的檢查點檢查。

必須填入所有必要的參數,才能傳送至 Azure。

繼承
JobPreparationTask

建構函式

JobPreparationTask(*, command_line: str, id: str = None, container_settings=None, resource_files=None, environment_settings=None, constraints=None, wait_for_success: bool = None, user_identity=None, rerun_on_node_reboot_after_success: bool = None, **kwargs)

參數

id
str
必要

識別碼可以包含英數位元的任何組合,包括連字號和底線,且不能包含超過 64 個字元。 如果您未指定此屬性,Batch 服務會指派預設值 'jobpreparation'。 作業中的其他工作不能有與作業準備工作相同的識別碼。 如果您嘗試提交具有相同識別碼的工作,Batch 服務會拒絕錯誤碼 TaskIdSameAsJobPreparationTask 的要求;如果您要直接呼叫 REST API,HTTP 狀態碼為 409 (Conflict) 。

command_line
str
必要

必要。 命令列不會在殼層下執行,因此無法利用環境變數擴充等殼層功能。 如果您想要利用這類功能,您應該在命令列中叫用殼層,例如在 Windows 中使用 「cmd /c MyCommand」 或 Linux 中的 「/bin/sh -c MyCommand」。 如果命令列參考檔案路徑,它應該使用相對於工作工作目錄) 的相對路徑 (,或使用 Batch 提供的環境變數 (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables) 。

container_settings
TaskContainerSettings
必要

作業準備工作執行所在容器的設定。 當指定此專案時,節點) 上Azure Batch目錄根目錄AZ_BATCH_NODE_ROOT_DIR (遞迴地對應到容器、所有 Task 環境變數都會對應到容器中,而且工作命令列會在容器中執行。 在AZ_BATCH_NODE_ROOT_DIR外部容器中產生的檔案可能不會反映到主機磁片,這表示 Batch 檔案 API 將無法存取這些檔案。

resource_files
list[ResourceFile]
必要

此元素底下的檔案位於工作的工作目錄中。 資源檔案清單的大小上限。 超過大小上限時,要求將會失敗,而回應錯誤碼將會是 RequestEntityTooLarge。 如果發生這種情況,ResourceFiles 的集合必須縮小大小。 這可以使用 .zip 檔案、應用程式套件或 Docker 容器來達成。

environment_settings
list[EnvironmentSetting]
必要
constraints
TaskConstraints
必要

套用至作業準備工作的條件約束。

wait_for_success
bool
必要

Batch 服務是否應該等候作業準備工作順利完成,再排程計算節點上作業的任何其他工作。 如果工作結束且結束代碼為 0,作業準備工作已順利完成。 如果 True 且作業準備工作在節點上失敗,Batch 服務會重試作業準備工作,最多重試計數上限 (,如條件約束元素中所指定) 。 如果工作在所有重試之後仍然未順利完成,Batch 服務將不會將作業的工作排程到節點。 節點會保持作用中,且有資格執行其他作業的工作。 如果為 false,Batch 服務將不會等待作業準備工作完成。 在此情況下,作業的其他工作可以在作業準備工作仍在執行時,開始在計算節點上執行;即使作業準備工作失敗,新的工作仍會繼續排程在計算節點上。 預設值為 true。

user_identity
UserIdentity
必要

作業準備工作執行所在的使用者身分識別。 如果省略,工作會以 Windows 計算節點上工作唯一的非系統管理使用者身分執行,或 Linux 計算節點上集區唯一的非系統管理使用者。

rerun_on_node_reboot_after_success
bool
必要

Batch 服務是否應該在計算節點重新開機之後重新執行作業準備工作。 如果重新映射計算節點,或作業準備工作未完成 (例如,因為工作執行) 時發生重新開機,則作業準備工作一律會重新執行。 因此,您應該一律撰寫作業準備工作,以等冪,並在多次執行時正確運作。 預設值為 true。

方法

as_dict

使用 json.dump 傳回可以是 JSONify 的聽寫。

進階用法可以選擇性地使用回呼作為參數:

索引鍵是 Python 中使用的屬性名稱。 Attr_desc是中繼資料的聽寫。 目前包含具有 msrest 類型的 'type',以及具有 RestAPI 編碼金鑰的 'key'。 Value 是這個 物件中的目前值。

傳回的字串將用來序列化索引鍵。 如果傳回類型是清單,則會將此視為階層式結果聽寫。

請參閱此檔案中的三個範例:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

如果您想要 XML 序列化,您可以傳遞 kwargs is_xml=True。

deserialize

使用 RestAPI 語法剖析 str 並傳回模型。

enable_additional_properties_sending
from_dict

使用指定的索引鍵擷取器剖析聽寫會傳回模型。

根據預設,請考慮金鑰擷取器 (rest_key_case_insensitive_extractor、attribute_key_case_insensitive_extractor和last_rest_key_case_insensitive_extractor)

is_xml_model
serialize

傳回會從此模型傳送至 Azure 的 JSON。

這是as_dict (full_restapi_key_transformer的別名 ,keep_readonly=False)

如果您想要 XML 序列化,您可以傳遞 kwargs is_xml=True。

validate

以遞迴方式驗證此模型,並傳回 ValidationError 的清單。

as_dict

使用 json.dump 傳回可以是 JSONify 的聽寫。

進階用法可以選擇性地使用回呼作為參數:

索引鍵是 Python 中使用的屬性名稱。 Attr_desc是中繼資料的聽寫。 目前包含具有 msrest 類型的 'type',以及具有 RestAPI 編碼金鑰的 'key'。 Value 是這個 物件中的目前值。

傳回的字串將用來序列化索引鍵。 如果傳回類型是清單,則會將此視為階層式結果聽寫。

請參閱此檔案中的三個範例:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

如果您想要 XML 序列化,您可以傳遞 kwargs is_xml=True。

as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)

參數

key_transformer
<xref:function>

按鍵轉換程式函式。

keep_readonly
預設值: True

傳回

聽寫 JSON 相容物件

傳回類型

deserialize

使用 RestAPI 語法剖析 str 並傳回模型。

deserialize(data, content_type=None)

參數

data
str
必要

使用 RestAPI 結構的 str。 根據預設,JSON。

content_type
str
預設值: None

根據預設,如果 XML,請設定 application/xml。

傳回

此模型的實例

例外狀況

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

使用指定的索引鍵擷取器剖析聽寫會傳回模型。

根據預設,請考慮金鑰擷取器 (rest_key_case_insensitive_extractor、attribute_key_case_insensitive_extractor和last_rest_key_case_insensitive_extractor)

from_dict(data, key_extractors=None, content_type=None)

參數

data
dict
必要

使用 RestAPI 結構的聽寫

content_type
str
預設值: None

根據預設,如果 XML,請設定 application/xml。

key_extractors
預設值: None

傳回

此模型的實例

例外狀況

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

傳回會從此模型傳送至 Azure 的 JSON。

這是as_dict (full_restapi_key_transformer的別名 ,keep_readonly=False)

如果您想要 XML 序列化,您可以傳遞 kwargs is_xml=True。

serialize(keep_readonly=False, **kwargs)

參數

keep_readonly
bool
預設值: False

如果您想要序列化唯讀屬性

傳回

聽寫 JSON 相容物件

傳回類型

validate

以遞迴方式驗證此模型,並傳回 ValidationError 的清單。

validate()

傳回

驗證錯誤清單

傳回類型