다음을 통해 공유


JobManagerTask interface

작업 관리자 작업은 작업을 만들 때 자동으로 시작됩니다. Batch 서비스는 작업의 다른 작업 앞에 작업 관리자 태스크를 예약하려고 합니다. 풀을 축소할 때 Batch 서비스는 작업 관리자 태스크가 가능한 한 오랫동안 실행되는 노드를 유지하려고 합니다(즉, '정상' 작업을 실행하는 컴퓨팅 노드는 작업 관리자 작업을 실행하는 컴퓨팅 노드 전에 제거됨). 작업 관리자 태스크가 실패하고 다시 시작해야 하는 경우 시스템은 가장 높은 우선 순위로 예약을 시도합니다. 사용 가능한 유휴 컴퓨팅 노드가 없는 경우 시스템은 작업 관리자 작업을 다시 시작할 공간을 확보하기 위해 풀에서 실행 중인 작업 중 하나를 종료하고 큐로 반환할 수 있습니다. 한 작업의 작업 관리자 태스크는 다른 작업의 작업보다 우선 순위가 없습니다. 작업 전체에서 작업 수준 우선 순위만 관찰됩니다. 예를 들어 우선 순위 0 작업의 작업 관리자를 다시 시작해야 하는 경우 우선 순위 1 작업의 태스크를 대체하지 않습니다. Batch는 노드에서 복구 작업이 트리거될 때 작업을 다시 시도합니다. 복구 작업의 예로는 비정상 노드가 다시 부팅되거나 호스트 오류로 인해 컴퓨팅 노드가 사라진 경우(제한되지 않음) 등이 있습니다. 복구 작업으로 인한 재시도는 maxTaskRetryCount와 독립적이며 계산되지 않습니다. maxTaskRetryCount가 0이더라도 복구 작업으로 인한 내부 재시도가 발생할 수 있습니다. 이 때문에 모든 작업은 idempotent여야 합니다. 즉, 작업이 손상되거나 중복된 데이터를 유발하지 않고 중단되고 다시 시작되는 것을 허용해야 합니다. 장기 실행 작업의 모범 사례는 일종의 검사점을 사용하는 것입니다.

속성

allowLowPriorityNode

우선 순위가 낮은 컴퓨팅 노드에서 작업 관리자 태스크를 실행할 수 있는지 여부입니다. 기본값은 true입니다.

applicationPackageReferences

명령줄을 실행하기 전에 Batch 서비스가 컴퓨팅 노드에 배포할 애플리케이션 패키지 목록입니다. 애플리케이션 패키지는 작업 작업 디렉터리가 아닌 공유 디렉터리에 다운로드되고 배포됩니다. 따라서 참조된 애플리케이션 패키지가 컴퓨팅 노드에 이미 있고 최신 상태이면 다시 다운로드되지 않습니다. 컴퓨팅 노드의 기존 복사본이 사용됩니다. 예를 들어 패키지가 삭제되었거나 다운로드에 실패하여 참조된 애플리케이션 패키지를 설치할 수 없는 경우 작업이 실패합니다.

authenticationTokenSettings

태스크가 Batch 서비스 작업을 수행하는 데 사용할 수 있는 인증 토큰에 대한 설정입니다. 이 속성이 설정된 경우 Batch 서비스는 계정 액세스 키를 요구하지 않고 Batch 서비스 작업을 인증하는 데 사용할 수 있는 인증 토큰을 Task에 제공합니다. 토큰은 AZ_BATCH_AUTHENTICATION_TOKEN 환경 변수를 통해 제공됩니다. 태스크가 토큰을 사용하여 수행할 수 있는 작업은 설정에 따라 달라집니다. 예를 들어 태스크는 작업에 다른 작업을 추가하거나 작업 또는 작업 아래의 다른 작업의 상태를 확인하기 위해 작업 권한을 요청할 수 있습니다.

commandLine

작업 관리자 태스크의 명령줄입니다. 명령줄은 셸에서 실행되지 않으므로 환경 변수 확장과 같은 셸 기능을 활용할 수 없습니다. 이러한 기능을 활용하려면 명령줄에서 셸을 호출해야 합니다(예: Windows에서 "cmd /c MyCommand"를 사용하거나 Linux에서 "/bin/sh -c MyCommand"). 명령줄이 파일 경로를 참조하는 경우 상대 경로(작업 작업 디렉터리를 기준으로)를 사용하거나 Batch 제공 환경 변수(https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables)를 사용해야 합니다.

constraints

작업 관리자 태스크에 적용되는 제약 조건입니다.

containerSettings

작업 관리자 태스크가 실행되는 컨테이너에 대한 설정입니다. 이 작업을 실행할 풀에 containerConfiguration 집합이 있는 경우 이 설정도 설정해야 합니다. 이 작업을 실행할 풀에 containerConfiguration이 설정되어 있지 않으면 설정하면 안 됩니다. 이 옵션을 지정하면 AZ_BATCH_NODE_ROOT_DIR 아래의 모든 디렉터리(노드의 Azure Batch 디렉터리 루트)가 컨테이너에 매핑되고, 모든 작업 환경 변수가 컨테이너에 매핑되고, 작업 명령줄이 컨테이너에서 실행됩니다. AZ_BATCH_NODE_ROOT_DIR 외부 컨테이너에서 생성된 파일은 호스트 디스크에 반영되지 않을 수 있습니다. 즉, Batch 파일 API가 해당 파일에 액세스할 수 없습니다.

displayName

작업 관리자 작업의 표시 이름입니다. 고유할 필요는 없으며 최대 길이 1024까지 유니코드 문자를 포함할 수 있습니다.

environmentSettings

작업 관리자 태스크에 대한 환경 변수 설정 목록입니다.

id

작업 내에서 작업 관리자 태스크를 고유하게 식별하는 문자열입니다. ID는 하이픈과 밑줄을 포함하여 영숫자 문자의 조합을 포함할 수 있으며 64자를 초과할 수 없습니다.

killJobOnCompletion

작업 관리자 태스크의 완료가 전체 작업의 완료를 나타내는지 여부입니다. true이면 작업 관리자 태스크가 완료되면 Batch 서비스에서 작업을 완료로 표시합니다. 현재 작업 릴리스가 아닌 현재 실행 중인 작업이 있으면 해당 작업이 종료됩니다. false이면 작업 관리자 태스크의 완료가 작업 상태에 영향을 주지 않습니다. 이 경우 onAllTasksComplete 특성을 사용하여 작업을 종료하거나 클라이언트 또는 사용자가 작업을 명시적으로 종료하도록 해야 합니다. 예를 들어 작업 관리자가 작업 집합을 만든 다음 실행에서 더 이상 역할을 수행하지 않는 경우입니다. 기본값은 true입니다. onAllTasksComplete 및 onTaskFailure 특성을 사용하여 작업 수명을 제어하고 작업 관리자 태스크를 사용하여 작업에 대한 작업만 만드는 경우(진행률을 모니터링하지 않음) killJobOnCompletion을 false로 설정하는 것이 중요합니다.

outputFiles

명령줄을 실행한 후 Batch 서비스가 Compute 노드에서 업로드할 파일 목록입니다. 다중 인스턴스 작업의 경우 파일은 주 작업이 실행되는 컴퓨팅 노드에서만 업로드됩니다.

requiredSlots

태스크를 실행하는 데 필요한 예약 슬롯 수입니다. 기본값은 1입니다. 노드에 사용 가능한 여유 일정 슬롯이 충분한 경우에만 컴퓨팅 노드에서 작업을 실행하도록 예약할 수 있습니다. 다중 인스턴스 작업의 경우 1이어야 합니다.

resourceFiles

명령줄을 실행하기 전에 Batch 서비스가 컴퓨팅 노드에 다운로드할 파일 목록입니다. 이 요소 아래에 나열된 파일은 Task의 작업 디렉터리에 있습니다. 리소스 파일 목록에 대한 최대 크기가 있습니다. 최대 크기를 초과하면 요청이 실패하고 응답 오류 코드는 RequestEntityTooLarge가 됩니다. 이 경우 ResourceFiles 컬렉션의 크기를 줄여야 합니다. 이 작업은 .zip 파일, 애플리케이션 패키지 또는 Docker 컨테이너를 사용하여 수행할 수 있습니다.

runExclusive

작업 관리자 태스크가 실행되는 컴퓨팅 노드를 단독으로 사용해야 하는지 여부입니다. true이면 작업 관리자가 실행되는 동안 동일한 노드에서 다른 작업이 실행되지 않습니다. false이면 컴퓨팅 노드의 작업 관리자와 동시에 다른 작업을 실행할 수 있습니다. 작업 관리자 태스크는 일반적으로 컴퓨팅 노드의 동시 작업 제한에 대해 계산되므로 컴퓨팅 노드에서 여러 동시 작업을 허용하는 경우에만 관련이 있습니다. 기본값은 true입니다.

userIdentity

작업 관리자 태스크가 실행되는 사용자 ID입니다. 생략하면 태스크가 작업에 고유한 비관리 사용자로 실행됩니다.

속성 세부 정보

allowLowPriorityNode

우선 순위가 낮은 컴퓨팅 노드에서 작업 관리자 태스크를 실행할 수 있는지 여부입니다. 기본값은 true입니다.

allowLowPriorityNode?: boolean

속성 값

boolean

applicationPackageReferences

명령줄을 실행하기 전에 Batch 서비스가 컴퓨팅 노드에 배포할 애플리케이션 패키지 목록입니다. 애플리케이션 패키지는 작업 작업 디렉터리가 아닌 공유 디렉터리에 다운로드되고 배포됩니다. 따라서 참조된 애플리케이션 패키지가 컴퓨팅 노드에 이미 있고 최신 상태이면 다시 다운로드되지 않습니다. 컴퓨팅 노드의 기존 복사본이 사용됩니다. 예를 들어 패키지가 삭제되었거나 다운로드에 실패하여 참조된 애플리케이션 패키지를 설치할 수 없는 경우 작업이 실패합니다.

applicationPackageReferences?: ApplicationPackageReference[]

속성 값

authenticationTokenSettings

태스크가 Batch 서비스 작업을 수행하는 데 사용할 수 있는 인증 토큰에 대한 설정입니다. 이 속성이 설정된 경우 Batch 서비스는 계정 액세스 키를 요구하지 않고 Batch 서비스 작업을 인증하는 데 사용할 수 있는 인증 토큰을 Task에 제공합니다. 토큰은 AZ_BATCH_AUTHENTICATION_TOKEN 환경 변수를 통해 제공됩니다. 태스크가 토큰을 사용하여 수행할 수 있는 작업은 설정에 따라 달라집니다. 예를 들어 태스크는 작업에 다른 작업을 추가하거나 작업 또는 작업 아래의 다른 작업의 상태를 확인하기 위해 작업 권한을 요청할 수 있습니다.

authenticationTokenSettings?: AuthenticationTokenSettings

속성 값

commandLine

작업 관리자 태스크의 명령줄입니다. 명령줄은 셸에서 실행되지 않으므로 환경 변수 확장과 같은 셸 기능을 활용할 수 없습니다. 이러한 기능을 활용하려면 명령줄에서 셸을 호출해야 합니다(예: Windows에서 "cmd /c MyCommand"를 사용하거나 Linux에서 "/bin/sh -c MyCommand"). 명령줄이 파일 경로를 참조하는 경우 상대 경로(작업 작업 디렉터리를 기준으로)를 사용하거나 Batch 제공 환경 변수(https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables)를 사용해야 합니다.

commandLine: string

속성 값

string

constraints

작업 관리자 태스크에 적용되는 제약 조건입니다.

constraints?: TaskConstraints

속성 값

containerSettings

작업 관리자 태스크가 실행되는 컨테이너에 대한 설정입니다. 이 작업을 실행할 풀에 containerConfiguration 집합이 있는 경우 이 설정도 설정해야 합니다. 이 작업을 실행할 풀에 containerConfiguration이 설정되어 있지 않으면 설정하면 안 됩니다. 이 옵션을 지정하면 AZ_BATCH_NODE_ROOT_DIR 아래의 모든 디렉터리(노드의 Azure Batch 디렉터리 루트)가 컨테이너에 매핑되고, 모든 작업 환경 변수가 컨테이너에 매핑되고, 작업 명령줄이 컨테이너에서 실행됩니다. AZ_BATCH_NODE_ROOT_DIR 외부 컨테이너에서 생성된 파일은 호스트 디스크에 반영되지 않을 수 있습니다. 즉, Batch 파일 API가 해당 파일에 액세스할 수 없습니다.

containerSettings?: TaskContainerSettings

속성 값

displayName

작업 관리자 작업의 표시 이름입니다. 고유할 필요는 없으며 최대 길이 1024까지 유니코드 문자를 포함할 수 있습니다.

displayName?: string

속성 값

string

environmentSettings

작업 관리자 태스크에 대한 환경 변수 설정 목록입니다.

environmentSettings?: EnvironmentSetting[]

속성 값

id

작업 내에서 작업 관리자 태스크를 고유하게 식별하는 문자열입니다. ID는 하이픈과 밑줄을 포함하여 영숫자 문자의 조합을 포함할 수 있으며 64자를 초과할 수 없습니다.

id: string

속성 값

string

killJobOnCompletion

작업 관리자 태스크의 완료가 전체 작업의 완료를 나타내는지 여부입니다. true이면 작업 관리자 태스크가 완료되면 Batch 서비스에서 작업을 완료로 표시합니다. 현재 작업 릴리스가 아닌 현재 실행 중인 작업이 있으면 해당 작업이 종료됩니다. false이면 작업 관리자 태스크의 완료가 작업 상태에 영향을 주지 않습니다. 이 경우 onAllTasksComplete 특성을 사용하여 작업을 종료하거나 클라이언트 또는 사용자가 작업을 명시적으로 종료하도록 해야 합니다. 예를 들어 작업 관리자가 작업 집합을 만든 다음 실행에서 더 이상 역할을 수행하지 않는 경우입니다. 기본값은 true입니다. onAllTasksComplete 및 onTaskFailure 특성을 사용하여 작업 수명을 제어하고 작업 관리자 태스크를 사용하여 작업에 대한 작업만 만드는 경우(진행률을 모니터링하지 않음) killJobOnCompletion을 false로 설정하는 것이 중요합니다.

killJobOnCompletion?: boolean

속성 값

boolean

outputFiles

명령줄을 실행한 후 Batch 서비스가 Compute 노드에서 업로드할 파일 목록입니다. 다중 인스턴스 작업의 경우 파일은 주 작업이 실행되는 컴퓨팅 노드에서만 업로드됩니다.

outputFiles?: OutputFile[]

속성 값

requiredSlots

태스크를 실행하는 데 필요한 예약 슬롯 수입니다. 기본값은 1입니다. 노드에 사용 가능한 여유 일정 슬롯이 충분한 경우에만 컴퓨팅 노드에서 작업을 실행하도록 예약할 수 있습니다. 다중 인스턴스 작업의 경우 1이어야 합니다.

requiredSlots?: number

속성 값

number

resourceFiles

명령줄을 실행하기 전에 Batch 서비스가 컴퓨팅 노드에 다운로드할 파일 목록입니다. 이 요소 아래에 나열된 파일은 Task의 작업 디렉터리에 있습니다. 리소스 파일 목록에 대한 최대 크기가 있습니다. 최대 크기를 초과하면 요청이 실패하고 응답 오류 코드는 RequestEntityTooLarge가 됩니다. 이 경우 ResourceFiles 컬렉션의 크기를 줄여야 합니다. 이 작업은 .zip 파일, 애플리케이션 패키지 또는 Docker 컨테이너를 사용하여 수행할 수 있습니다.

resourceFiles?: ResourceFile[]

속성 값

runExclusive

작업 관리자 태스크가 실행되는 컴퓨팅 노드를 단독으로 사용해야 하는지 여부입니다. true이면 작업 관리자가 실행되는 동안 동일한 노드에서 다른 작업이 실행되지 않습니다. false이면 컴퓨팅 노드의 작업 관리자와 동시에 다른 작업을 실행할 수 있습니다. 작업 관리자 태스크는 일반적으로 컴퓨팅 노드의 동시 작업 제한에 대해 계산되므로 컴퓨팅 노드에서 여러 동시 작업을 허용하는 경우에만 관련이 있습니다. 기본값은 true입니다.

runExclusive?: boolean

속성 값

boolean

userIdentity

작업 관리자 태스크가 실행되는 사용자 ID입니다. 생략하면 태스크가 작업에 고유한 비관리 사용자로 실행됩니다.

userIdentity?: UserIdentity

속성 값