작업 크기 초과에 대한 오류 해결

이 문서에서는 JobSizeExceededExceptionDeploymentJobSizeExceededException 오류를 해결하는 방법에 대해 설명합니다. 작업 크기 초과 오류는 Bicep 파일 또는 ARM(Azure Resource Manager) 템플릿을 배포할 때 발생할 수 있습니다.

증상

템플릿을 배포할 때 배포 제한이 초과되었다는 오류가 표시됩니다.

원인

배포가 허용되는 한도를 초과하면 이 오류가 발생합니다. 일반적으로 이 오류는 배포를 실행하는 작업 또는 템플릿 중 하나가 너무 클 때 표시됩니다.

배포 작업은 1MB를 초과할 수 없으며 여기에는 요청에 대한 메타데이터가 포함됩니다. 큰 템플릿의 경우 템플릿과 결합된 메타데이터가 작업의 허용되는 크기를 초과할 수 있습니다.

템플릿은 4MB를 초과할 수 없으며 각 리소스 정의는 1MB를 초과할 수 없습니다. 이 제한 사항은 루프를 사용하여 많은 인스턴스를 만드는 리소스 정의를 위해 확장된 후 템플릿의 최종 상태에 적용됩니다. 최종 상태에는 변수 및 매개 변수에 대해 확인된 값도 포함됩니다.

다른 템플릿 제한은 다음과 같습니다.

  • 매개 변수 256개
  • 변수 256개
  • 리소스 800개(인쇄 매수 포함)
  • 출력 값 64개
  • 템플릿 식의 문자 24,576자

해결 방법 1: 종속성을 신중하게 사용

리소스가 기호 이름으로 다른 리소스를 참조할 때 생성된 암시적 종속성을 사용합니다. 대부분의 배포의 경우 dependsOn을 사용하고 명시적 종속성을 만들 필요가 없습니다.

해결 방법 2: 템플릿 단순화

파일이 다양한 리소스 형식을 배포하는 경우 모듈로 나누는 것을 고려합니다. 리소스 종류를 논리 그룹으로 나누고 각 그룹에 대해 모듈을 추가합니다. 예를 들어 많은 네트워킹 리소스를 배포해야 하는 경우 해당 리소스를 모듈로 이동할 수 있습니다.

다른 리소스를 암시적 종속성으로 설정하고 모듈의 출력에서 값을 얻을 수 있습니다.

해결 방법 3: 이름 크기 줄이기

매개 변수, 변수, 출력에 사용하는 이름의 길이를 줄여 보세요. 이러한 값이 루프에서 반복되는 경우 긴 이름이 여러 배로 곱해집니다.