다음을 통해 공유


JobPreparationTask 클래스

지정된 컴퓨팅 노드에서 작업의 태스크 앞에 실행할 작업 준비 태스크입니다.

작업 준비를 사용하여 작업에 대한 작업을 실행할 노드를 준비할 수 있습니다. 작업 준비에서 일반적으로 수행되는 활동은 다음과 같습니다. 작업의 모든 태스크에서 사용하는 일반적인 리소스 파일 다운로드. 작업 준비 태스크는 이러한 일반적인 리소스 파일을 노드의 공유 위치에 다운로드할 수 있습니다. (AZ_BATCH_NODE_ROOT_DIRshared) 또는 해당 작업의 모든 작업이 통신할 수 있도록 노드에서 로컬 서비스를 시작합니다. 작업 준비 태스크가 실패하면(즉, 종료 코드 0으로 종료하기 전에 재시도 횟수가 소진됨) Batch는 노드에서 이 작업의 작업을 실행하지 않습니다. 컴퓨팅 노드는 다시 이미지화될 때까지 이 작업의 작업을 실행할 수 없습니다. 컴퓨팅 노드는 활성 상태로 유지되며 다른 작업에 사용할 수 있습니다. 작업 준비 태스크는 동일한 노드에서 여러 번 실행할 수 있습니다. 따라서 다시 실행을 처리하려면 작업 준비 태스크를 작성해야 합니다. 노드가 다시 부팅되면 작업 준비 태스크가 다른 작업 일정을 예약하기 전에 컴퓨팅 노드에서 다시 실행됩니다. rerunOnNodeRebootAfterSuccess가 true이거나 작업 준비 태스크가 이전에 완료되지 않은 경우 입니다. 노드가 다시 이미지화되면 작업 태스크를 예약하기 전에 작업 준비 태스크가 다시 실행됩니다. Batch는 노드에서 복구 작업이 트리거될 때 작업을 다시 시도합니다. 복구 작업의 예로는 비정상 노드가 다시 부팅되거나 호스트 실패로 인해 컴퓨팅 노드가 사라진 경우(하지만 제한되지 않음)가 있습니다. 복구 작업으로 인한 재시도는 독립적이며 maxTaskRetryCount에 대해 계산되지 않습니다. maxTaskRetryCount가 0이더라도 복구 작업으로 인한 내부 재시도가 발생할 수 있습니다. 이 때문에 모든 작업은 idempotent여야 합니다. 즉, 작업은 손상 또는 중복 데이터를 유발하지 않고 중단되고 다시 시작되는 것을 허용해야 합니다. 장기 실행 작업의 모범 사례는 일종의 검사점 지정을 사용하는 것입니다.

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
필수

ID는 하이픈과 밑줄을 포함한 영숫자 문자의 조합을 포함할 수 있으며 64자를 초과할 수 없습니다. 이 속성을 지정하지 않으면 Batch 서비스는 기본값인 'jobpreparation'을 할당합니다. 작업의 다른 태스크는 작업 준비 태스크와 동일한 ID를 가질 수 없습니다. 동일한 ID의 작업을 제출하려고 하면 Batch 서비스는 TaskIdSameAsJobPreparationTask 오류 코드로 요청을 거부합니다. REST API를 직접 호출하는 경우 HTTP 상태 코드는 409(충돌)입니다.

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
필수

작업 준비 태스크가 실행되는 컨테이너에 대한 설정입니다. 이 옵션을 지정하면 AZ_BATCH_NODE_ROOT_DIR 아래의 모든 디렉터리(노드의 Azure Batch 디렉터리 루트)가 컨테이너에 매핑되고 모든 작업 환경 변수가 컨테이너에 매핑되고 작업 명령줄이 컨테이너에서 실행됩니다. 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
필수

작업 준비 태스크가 실행되는 사용자 ID입니다. 생략하면 작업은 Windows 컴퓨팅 노드의 태스크에 고유한 비관리 사용자 또는 Linux 컴퓨팅 노드의 풀에 고유한 비관리 사용자로 실행됩니다.

rerun_on_node_reboot_after_success
bool
필수

컴퓨팅 노드가 다시 부팅된 후 Batch 서비스가 작업 준비 태스크를 다시 실행해야 하는지 여부입니다. 컴퓨팅 노드를 다시 설치하거나 작업 준비 태스크가 완료되지 않은 경우(예: 태스크가 실행되는 동안 다시 부팅이 발생했기 때문에) 작업 준비 태스크가 항상 다시 실행됩니다. 따라서 항상 작업 준비 태스크를 작성하여 idempotent로 지정하고 여러 번 실행하면 올바르게 동작해야 합니다. 기본값은 true입니다.

메서드

as_dict

json.dump를 사용하여 JSONify일 수 있는 받아쓰기를 반환합니다.

고급 사용은 필요에 따라 콜백을 매개 변수로 사용할 수 있습니다.

키는 Python에서 사용되는 특성 이름입니다. Attr_desc 메타데이터의 받아쓰기입니다. 현재 msrest 형식이 있는 'type'과 RestAPI 인코딩된 키가 있는 'key'가 포함되어 있습니다. 값은 이 개체의 현재 값입니다.

반환된 문자열은 키를 serialize하는 데 사용됩니다. 반환 형식이 목록인 경우 계층적 결과 받아쓰기로 간주됩니다.

이 파일의 세 가지 예제를 참조하세요.

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

XML serialization을 원하는 경우 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 serialization을 원하는 경우 kwargs is_xml=True를 전달할 수 있습니다.

validate

이 모델의 유효성을 재귀적으로 확인하고 ValidationError 목록을 반환합니다.

as_dict

json.dump를 사용하여 JSONify일 수 있는 받아쓰기를 반환합니다.

고급 사용은 필요에 따라 콜백을 매개 변수로 사용할 수 있습니다.

키는 Python에서 사용되는 특성 이름입니다. Attr_desc 메타데이터의 받아쓰기입니다. 현재 msrest 형식이 있는 'type'과 RestAPI 인코딩된 키가 있는 'key'가 포함되어 있습니다. 값은 이 개체의 현재 값입니다.

반환된 문자열은 키를 serialize하는 데 사용됩니다. 반환 형식이 목록인 경우 계층적 결과 받아쓰기로 간주됩니다.

이 파일의 세 가지 예제를 참조하세요.

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

XML serialization을 원하는 경우 kwargs is_xml=True를 전달할 수 있습니다.

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

매개 변수

key_transformer
<xref:function>

키 변환기 함수입니다.

keep_readonly
기본값: True

반환

dict JSON 호환 개체

반환 형식

deserialize

RestAPI 구문을 사용하여 str를 구문 분석하고 모델을 반환합니다.

deserialize(data, content_type=None)

매개 변수

data
str
필수

RestAPI 구조를 사용하는 str입니다. 기본적으로 JSON입니다.

content_type
str
기본값: None

기본적으로 JSON은 XML인 경우 application/xml을 설정합니다.

반환

이 모델의 instance

예외

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

기본적으로 JSON은 XML인 경우 application/xml을 설정합니다.

key_extractors
기본값: None

반환

이 모델의 instance

예외

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

이 모델에서 azure로 보낼 JSON을 반환합니다.

이는 as_dict(full_restapi_key_transformer, keep_readonly=False)에 대한 별칭입니다.

XML serialization을 원하는 경우 kwargs is_xml=True를 전달할 수 있습니다.

serialize(keep_readonly=False, **kwargs)

매개 변수

keep_readonly
bool
기본값: False

읽기 전용 특성을 직렬화하려는 경우

반환

dict JSON 호환 개체

반환 형식

validate

이 모델의 유효성을 재귀적으로 확인하고 ValidationError 목록을 반환합니다.

validate()

반환

유효성 검사 오류 목록

반환 형식