일괄 처리 상태 및 오류 코드
Batch 서비스에 대한 REST API 작업은 HTTP/1.1 상태 코드 정의에 정의된 대로 표준 HTTP 상태 코드를 반환합니다.
API 작업에서는 개발자에게 오류에 대한 자세한 내용을 제공하기 위해 오류 정보를 추가로 반환할 수도 있습니다. 예를 들어, 다음 오류 응답은 요청 URI에 지정된 쿼리 매개 변수가 잘못되었음을 나타내고, 잘못된 매개 변수의 이름 및 값에 대한 추가 정보와 오류 이유를 제공합니다.
{
"code": "InvalidQueryParameterValue",
"message": {
"lang": "en-us",
"value": "Value for one of the query parameters specified in the request URI is invalid"
},
"values": [{
"key": "QueryParameterName",
"value": "state"
}, {
"key": "QueryParameterValue",
"value": "deleted"
}, {
"key": "Reason",
"value": "invalid state"
}]
}
다음 섹션에서는 일괄 처리 서비스에 대한 오류 코드 목록을 제공합니다.
공통 REST API 오류 코드
다음 테이블에 나열된 오류 코드는 일괄 처리 서비스에 대한 작업에 의해 반환될 수 있습니다.
오류 코드 | HTTP 상태 코드 | 사용자 메시지 |
---|---|---|
ConditionNotMet | 수정 안 됨(304) | 조건부 헤더에 지정된 조건이 읽기 작업에 대해 충족되지 않았습니다. |
MissingRequiredHeader | 잘못된 요청(400) | 필요한 HTTP 헤더가 지정되지 않았습니다. |
MissingRequiredProperty | 잘못된 요청(400) | 필요한 속성이 요청 본문에 지정되지 않았습니다. |
UnsupportedHeader | 잘못된 요청(400) | 요청에 지정된 HTTP 헤더 중 하나가 지원되지 않습니다. |
UnsupportedProperty | 잘못된 요청(400) | 요청 본문에 지정된 속성 중 하나가 지원되지 않습니다. |
InvalidHeaderValue | 잘못된 요청(400) | HTTP 헤더 중 하나에 제공된 값이 올바른 형식이 아닙니다. |
InvalidPropertyValue | 잘못된 요청(400) | 요청 본문의 속성 중 하나에 대해 제공된 값이 올바르지 않습니다. |
MissingRequiredQueryParameter | 잘못된 요청(400) | 필요한 쿼리 매개 변수가 이 요청에 대해 지정되지 않았습니다. |
UnsupportedQueryParameter | 잘못된 요청(400) | 요청 URI에 지정된 쿼리 매개 변수 중 하나가 지원되지 않습니다. |
InvalidQueryParameterValue | 잘못된 요청(400) | 요청 URI에서 쿼리 매개 변수 중 하나에 잘못된 값이 지정되었습니다. |
OutOfRangeQueryParameterValue | 잘못된 요청(400) | 요청 URI에 지정된 쿼리 매개 변수가 허용 가능한 범위를 벗어납니다. |
RequestUrlFailedToParse | 잘못된 요청(400) | 요청의 URL을 구문 분석할 수 없습니다. |
InvalidUri | 잘못된 요청(400) | 요청된 URI가 서버의 리소스를 나타내지 않습니다. |
InvalidHttpVerb | 잘못된 요청(400) | 지정된 HTTP 동사를 서버에서 인식할 수 없습니다. |
EmptyMetadataKey | 잘못된 요청(400) | 메타데이터 키-값 쌍 중 하나의 키가 비어 있습니다. |
InvalidRequestBody | 잘못된 요청(400) | 지정한 요청 본문이 구문상 잘못되었습니다. |
OutOfRangeInput | 잘못된 요청(400) | 요청 입력 중 하나가 범위를 벗어납니다. |
InvalidAuthenticationInfo | 잘못된 요청(400) | 인증 정보가 올바른 형식으로 제공되지 않았습니다. 권한 부여 헤더의 값을 확인합니다. |
InvalidInput | 잘못된 요청(400) | 요청 입력 중 하나가 올바르지 않습니다. |
InvalidMetadata | 잘못된 요청(400) | 지정된 메타데이터가 잘못되었습니다. 허용되지 않는 문자가 포함됩니다. |
MetadataTooLarge | 잘못된 요청(400) | 지정된 메타데이터 크기가 허용되는 최대 크기를 초과합니다. |
MultipleConditionHeadersNotSupported | 잘못된 요청(400) | 다중 조건 헤더는 지원되지 않습니다. |
AuthenticationFailed | 사용할 수 없음(403) | 서버에서 요청을 인증하지 못했습니다. Authorization 헤더의 값이 올바르게 구성되고 서명이 포함되어 있는지 확인합니다. |
InsufficientAccountPermissions | 사용할 수 없음(403) | 액세스 중인 계정에 이 작업을 실행할 수 있는 권한이 부족합니다. |
AccountIsDisabled | 사용할 수 없음(403) | 지정된 계정이 비활성화되어 있습니다. |
ResourceNotFound | 찾을 수 없음(404) | 지정된 리소스가 없습니다. |
UnsupportedHttpVerb | 방식 허용 안 함(405) | 리소스에서 지정된 HTTP 동사가 지원되지 않습니다. |
MissingContentLengthHeader | 길이가 필요함(411) | Content-Length 헤더를 지정하지 않았습니다. |
ConditionNotMet | 전제 조건 실패(412) | 조건부 헤더에 지정된 조건이 쓰기 작업에 대해 충족되지 않았습니다. |
RequestBodyTooLarge | 요청 엔터티가 너무 큼(413) | 요청 본문 크기가 허용되는 최대 크기를 초과합니다. |
InvalidRange | 요청한 범위가 충분하지 않음(416) | 지정된 범위가 현재 리소스 크기에 대해 유효하지 않습니다. |
InternalError | 내부 서버 오류(500) | 서버에 내부 오류가 발생했습니다. 요청을 다시 시도하세요. |
OperationTimedOut | 내부 서버 오류(500) | 허용된 시간 내에 작업을 완료할 수 없습니다. |
ServerBusy | 서비스를 사용할 수 없음(503) | 서버는 현재 요청을 받을 수 없습니다. 요청을 다시 시도하세요. |
일괄 처리 서비스 오류 코드
다음 테이블에 나열된 오류 코드는 일괄 처리 서비스에 대한 작업에 의해 반환될 수 있습니다.
오류 코드 | HTTP 상태 코드 | 사용자 메시지 |
---|---|---|
UnsupportedRequestVersion | BadRequest(400) | 지정한 요청 버전이 지원되지 않습니다. |
InvalidAutoScalingSettings | BadRequest(400) | 지정한 자동 크기 조정 설정이 올바르지 않습니다. |
AutoScalingFormulaSyntaxError | BadRequest(400) | 지정한 자동 크기 조정 수식에 구문 오류가 있습니다. |
AutoScalingFormulaTooLong | BadRequest(400) | 지정한 자동 크기 조정 수식이 길이 제한을 초과합니다. |
OSVersionNotFound | BadRequest(400) | 지정한 OS 버전이 없습니다. |
OSVersionDisabled | BadRequest(400) | 지정한 OS 버전을 사용할 수 없습니다. |
OSVersionExpired | BadRequest(400) | 지정한 OS 버전이 만료되었습니다. |
PoolVersionEqualsUpgradeVersion | BadRequest(400) | 풀이 이미 지정된 버전입니다. |
PoolNotEligibleForOSVersionUpgrade | BadRequest(400) | 지정한 풀에서는 OS 버전 업그레이드를 수행할 수 없습니다. |
PoolNotFound | NotFound(404) | 지정한 풀이 없습니다. |
NodeNotFound | NotFound(404) | 지정된 노드가 없습니다. |
JobScheduleNotFound | NotFound(404) | 지정된 작업 일정이 없습니다. |
JobNotFound | NotFound(404) | 지정한 작업이 없습니다. |
TaskNotFound | NotFound(404) | 지정한 태스크가 없습니다. |
FileNotFound | NotFound(404) | 지정된 파일이 없는 경우 |
NodeUserNotFound | NotFound(404) | 지정된 노드 사용자가 없습니다. |
CertificateNotFound | NotFound(404) | 지정한 인증서가 없습니다. |
JobPreparationTaskNotRunOnNode | NotFound(404) | 작업 준비 작업이 지정된 노드에서 실행되지 않았습니다. |
JobReleaseTaskNotRunOnNode | NotFound(404) | 작업 릴리스 작업이 지정된 노드에서 실행되지 않았습니다. |
NodeAgentSKUNotFound | NotFound(404) | 지정된 노드 에이전트 SKU가 없습니다. |
OperationInvalidForCurrentState | 충돌(409) | 지정한 작업이 리소스의 현재 상태에 대해 올바르지 않습니다. |
PoolBeingDeleted | 충돌(409) | 지정한 풀이 삭제하도록 표시되었으며 회수되는 중입니다. |
PoolBeingResized | 충돌(409) | 지정한 풀의 크기를 조정하는 중입니다. |
PoolBeingCreated | 충돌(409) | 지정한 풀을 만드는 중입니다. |
NodeBeingCreated | 충돌(409) | 지정된 노드가 만들어지고 있습니다. |
NodeBeingStarted | 충돌(409) | 지정된 노드가 시작되고 있습니다. |
NodeBeingReimaged | 충돌(409) | 지정된 노드가 이미지로 다시 설치되고 있습니다. |
NodeBeingRebooted | 충돌(409) | 지정된 노드가 다시 부팅되고 있습니다. |
NodeStateUnusable | 충돌(409) | 지정된 노드의 상태를 사용할 수 없습니다. |
JobScheduleBeingTerminated | 충돌(409) | 지정된 작업 일정이 종료됩니다. |
JobScheduleBeingDeleted | 충돌(409) | 지정된 작업 일정이 삭제될 것으로 표시되어 회수되고 있습니다. |
CertificateBeingDeleted | 충돌(409) | 지정한 인증서가 삭제하도록 표시되었으며 삭제되는 중입니다. |
PoolExists | 충돌(409) | 지정한 풀이 이미 있습니다. |
JobScheduleExists | 충돌(409) | 지정된 작업 일정이 이미 있습니다. |
NodeUserExists | 충돌(409) | 지정된 노드 사용자가 이미 있습니다. |
JobExists | 충돌(409) | 지정된 작업이 이미 있습니다. |
NodeUserExists | 충돌(409) | 지정된 노드 사용자가 이미 있습니다. |
CertificateExists | 충돌(409) | 지정한 인증서가 이미 있습니다. |
JobScheduleDisabled | 충돌(409) | 지정된 작업 일정을 사용할 수 없습니다. |
JobScheduleCompleted | 충돌(409) | 지정된 작업 일정이 이미 완료된 상태입니다. |
JobBeingTerminated | 충돌(409) | 지정한 작업을 종료하는 중입니다. |
JobBeingDeleted | 충돌(409) | 지정한 작업이 삭제하도록 표시되었으며 가비지 수집되는 중입니다. |
JobDisabled | 충돌(409) | 지정된 작업을 사용할 수 없습니다. |
JobCompleted | 충돌(409) | 지정한 작업이 이미 완료된 상태입니다. |
JobNotActive | 충돌(409) | 지정한 작업이 활성 상태가 아닙니다. |
TaskExists | 충돌(409) | 지정한 태스크가 이미 있습니다. |
TaskCompleted | 충돌(409) | 지정한 태스크가 이미 완료된 상태입니다. |
TaskNotCompleted | 충돌(409) | 지정된 작업이 완료된 상태가 아니며 요청된 작업은 완료된 작업에서만 수행할 수 있습니다. |
TaskSucceeded | 충돌(409) | 지정한 작업이 이미 성공적으로 완료되었으며, 성공한 작업에 대해 요청된 작업을 수행할 수 없습니다. |
TaskFilesUnavailable | 충돌(409) | 지정한 태스크의 파일을 사용할 수 없습니다. |
TaskFilesCleanedup | 충돌(409) | 지정한 태스크의 파일이 정리되었습니다. |
ActiveJobAndScheduleQuotaReached | 충돌(409) | 계정에 대한 활성 작업 및 일정 할당량에 도달했습니다. |
PoolQuotaReached | 충돌(409) | 계정에 대한 풀 할당량에 도달했습니다. |
UpgradePoolVersionConflict | 충돌(409) | 풀을 다른 버전으로 이미 업그레이드하는 중입니다. |
JobPreparationTaskNotSpecified | 충돌(409) | 지정된 작업에 작업 준비 태스크가 없습니다. |
JobReleaseTaskNotSpecified | 충돌(409) | 지정된 작업에 작업 릴리스 작업이 없습니다. |
TaskIdSameAsJobPreparationTask | 충돌(409) | 지정된 작업 ID는 작업 준비 작업과 동일합니다. |
TaskIdSameAsJobReleaseTask | 충돌(409) | 지정된 작업 ID는 작업 릴리스 작업과 동일합니다. |
JobWithSameIdExists | 충돌(409) | 지정된 작업 일정 ID가 있는 작업이 있습니다. 작업 및 작업 일정은 동일한 ID를 가질 수 없습니다. |
JobScheduleWithSameIdExists | 충돌(409) | 지정된 작업 ID가 있는 작업 일정이 있습니다. 작업 및 작업 일정은 동일한 ID를 가질 수 없습니다. |
NodeAlreadyInTargetSchedulingState | 충돌(409) | 지정된 노드가 이미 대상 예약 상태에 있습니다. |
OperationNotValidOnNode | 충돌(409) | 지정된 작업이 노드에서 유효하지 않습니다. |
OperationNotValidOnPool | 충돌(409) | 지정된 작업이 풀에서 유효하지 않습니다. |
IOError | 사용할 수 없음(403) | 지정한 리소스에 액세스할 때 I/O 오류가 발생했습니다. |
TooManyEnableAutoScaleRequests | ServiceUnavailable(503) | 풀 자동 크기 조정 사용 요청이 풀에서 너무 많이 발급됩니다. |
ApplicationNotFound | 찾을 수 없음(404) | 지정된 애플리케이션이 없습니다. |
InvalidApplicationPackageReferences | 충돌(409) | 하나 이상의 애플리케이션 패키지 참조를 충족할 수 없습니다. 이 문제는 애플리케이션 ID 또는 버전이 없거나 활성 상태가 아니거나 참조가 버전을 지정하지 않았고 구성된 기본 버전이 없는 경우에 발생합니다. |
TaskDependenciesNotSpecifiedOnJob | 잘못된 요청(400) | 작업은 다른 작업에 따라 로 지정되었지만 작업에서 작업 종속성을 사용하도록 지정하지 않았습니다. |
TaskDependencyListTooLong | 잘못된 요청(400) | 작업이 다른 작업에 따라 로 지정되었지만 종속성 목록이 너무 길어 저장되지 않았습니다. 저장된 총 길이는 64000자로 제한됩니다. 내부 스토리지 오버헤드를 허용하려면 작업 ID의 총 길이가 이보다 약간 작아야 합니다. 이 오류가 발생하면 작업 범위 종속성을 대신 사용하는 것이 좋습니다. |
TaskDependencyRangesTooLong | 잘못된 요청(400) | 작업이 여러 작업 ID 범위에 따라 로 지정되었고 범위 목록이 너무 길어 저장되지 않았습니다. 문제는 범위의 크기가 아니라 범위 수와 관련이 있습니다. |
작업/태스크 예약 오류 코드
Batch 서비스에서 노드에서 작업을 시작할 때 오류가 발생하면 작업이 완료된 것으로 표시됩니다. 오류 정보는 작업과 연결된 파일 나열 및 작업 API에 대한 정보 가져오기의 응답 본문에 있는 요소 내에서 failureInfo
반환됩니다.
마찬가지로 작업을 시작하는 동안 일괄 처리 서비스에서 오류가 발생하면 작업은 완료된 것으로 표시됩니다. 이 예약 오류 정보는 Batch API schedulingError
에서 작업에 대한 정보 가져오기 의 응답 본문에 있는 요소 내에서 반환됩니다.
다음 테이블에는 태스크 예약 오류의 범주 목록이 나와 있습니다.
범주 | 설명 |
---|---|
UserError | 사용자가 제공한 태스크 사양의 오류입니다. |
ServerError | 일괄 처리 서비스에서 발생하여 태스크 예약을 차단하는 오류입니다. |
다음은 Batch 서비스에서 반환하는 샘플 사전 처리 오류입니다.
{
"preProcessingError": {
"category": "UserError",
"code": "BlobNotFound",
"message": "The specified blob does not exist.",
"values": {
"name": "FilePath",
"value": "myfile.txt"
}
}
}
다음 표에서는 Batch 서비스에서 반환할 수 있는 작업 예약 오류 코드 목록을 제공합니다.
오류 코드 | 범주 | 사용자 메시지 |
---|---|---|
InvalidCertificatesInAutoPool | UserError | 자동 풀 사양에 지정된 인증서 참조가 올바르지 않습니다. |
AutoPoolCreationFailedWithQuotaReached | UserError | 계정의 풀 할당량에 도달했습니다. |
InvalidApplicationPackageReferencesInAutoPool | UserError | 풀에 대해 지정된 하나 이상의 애플리케이션 패키지가 잘못되었습니다. |
InvalidAutoScaleFormulaInAutoPool | UserError | 지정한 자동 크기 조정 설정이 올바르지 않습니다. |
InvalidAutoPoolSettings | UserError | 지정된 자동 풀 설정이 잘못되었습니다. |
JobBeingTerminated | UserError | 연결된 작업이 종료되고 있으므로 작업을 시작할 수 없습니다. |
Unknown | ServerError | 알 수 없는 예약 오류가 발생했습니다. |
다음 표에서는 Batch 서비스에서 반환할 수 있는 작업 예약 오류 코드 목록을 제공합니다.
오류 코드 | 범주 | 사용자 메시지 |
---|---|---|
BlobNotFound | UserError | 지정된 Azure Blob 중 하나를 찾을 수 없습니다. |
BlobAccessDenied | UserError | 지정된 Azure Blob 중 하나에 대한 액세스가 거부되었습니다. |
BlobDownloadTimedOut | ServerError | 지정된 Azure Blob 중 하나를 다운로드하는 동안 시간 제한이 발생했습니다. |
BlobDownloadMiscError | ServerError | 지정된 Azure Blob 중 하나를 다운로드하는 동안 기타 오류가 발생했습니다. |
ResourceDirectoryCreateFailed | ServerError | 작업에 대한 리소스 디렉터리를 만드는 동안 오류가 발생했습니다. |
ResourceFileCreateFailed | ServerError | 리소스 파일을 만드는 동안 오류가 발생했습니다. |
ResourceFileWriteFailed | ServerError | 리소스 파일을 작성하지 못했습니다. |
CommandProgramNotFound | UserError | 지정한 명령 프로그램을 찾을 수 없습니다. |
CommandLaunchFailed | UserError | 지정된 명령줄을 시작하지 못했습니다. |
TaskEnded | UserError | 작업이 사용자 요청에 의해 종료되었습니다. |
MaxInternalRetryCountReached | UserError | 지정된 작업이 최대 내부 재시도 횟수에 도달했습니다. |
TaskSchedulingConstraintFailed | UserError | 작업과 연결된 풀에서 작업을 예약할 수 없습니다. |
DiskFull | ServerError | 노드에 작업을 실행하도록 선택된 디스크 공간이 부족합니다. |
Unknown | ServerError | 알 수 없는 예약 오류가 발생했습니다. |