

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 작업 템플릿에 작업 청킹 추가
<a name="build-job-bundle-chunking-add"></a>

다음 절차는 작업당 하나의 프레임을 렌더링하는 작업 템플릿을 프레임 청크를 렌더링하는 작업 템플릿으로 변환합니다. 청킹에 대한 배경과 청크 크기를 선택하는 방법은 단원을 참조하십시오[작업 템플릿에 대한 작업 청킹](build-job-bundle-chunking.md).

시작하려면 다음이 필요합니다.
+ 프레임 작업 파라미터를 정의하는 작업 템플릿이 포함된 작업 번들입니다. 자세한 내용은 [작업 번들에 대한 작업 템플릿 요소](build-job-bundle-template.md) 단원을 참조하십시오.
+ 청킹을 지원하는 플릿과 연결된 대기열입니다. 서비스 관리형 플릿은 항상 호환되는 작업자 에이전트를 실행합니다. 고객 관리형 플릿에는 작업자 에이전트 버전 0.28.21 이상이 필요합니다.

**작업 템플릿에 작업 청킹을 추가하려면**

1. `template.yaml` 파일 상단에 `TASK_CHUNKING` 확장명을 추가합니다.

   ```
   specificationVersion: 'jobtemplate-2023-09'
   extensions:
     - TASK_CHUNKING
   ```

   이 단계를 건너뛰면 작업 생성이 실패하고 오류가 발생합니다. `The CHUNK[INT] task parameter requires the TASK_CHUNKING extension.` 

1. 단계의에서 프레임 작업 파라미터 유형을에서 `INT` 로 `parameterSpace`변경`CHUNK[INT]`하고 `chunks` 속성을 추가합니다.

   ```
   taskParameterDefinitions:
     - name: Frame
       type: CHUNK[INT]
       range: "{{Param.Frames}}"
       chunks:
         defaultTaskCount: 10
         rangeConstraint: CONTIGUOUS
   ```

   사용 가능한 모든 필드는 섹션을 참조하세요[CHUNK[INT] 작업 파라미터 참조](build-job-bundle-chunking-reference.md).

1. 단일 프레임 대신 프레임 범위를 허용하도록 단계의 스크립트를 업데이트합니다. `rangeConstraint: CONTIGUOUS`를 사용하면 `{{Task.Param.Frame}}` 변수가 항상 `start-end` 형식의 범위로 확장되므로 스크립트는 `cut` 명령을 사용하여 변수를 분할할 수 있습니다.

   ```
   START_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f1)"
   END_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f2)"
   ```

   `rangeConstraint: NONCONTIGUOUS`를 사용하면 변수가와 같은 임의의 범위 표현식으로 확장됩니다`1-3,5,7-20:2`. 표현식을 애플리케이션이 허용하는 구문으로 변환합니다. 작업 변환은 GitHub의 [작업 청킹 샘플을](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/task_chunking) 참조하세요.

1. Deadline Cloud CLI를 사용하여 작업 번들을 제출합니다.

   ```
   deadline bundle submit {{my-job-bundle}}
   ```

1. 청킹이 적용되고 있는지 확인하려면 Deadline Cloud 모니터에서 작업을 열고 단계의 작업 목록을 확인합니다. 각 작업은 청크 하나를 나타내며 단일 프레임 번호 `1-10` 대신와 같은 프레임 범위를 표시합니다.

다음 전체 작업 템플릿은 Blender 애니메이션을 10프레임 청크로 렌더링합니다.

```
specificationVersion: 'jobtemplate-2023-09'
extensions:
  - TASK_CHUNKING
name: Blender Render with Contiguous Chunking
parameterDefinitions:
  - name: BlenderSceneFile
    type: PATH
    objectType: FILE
    dataFlow: IN
  - name: Frames
    type: STRING
    default: "1-100"
  - name: OutputDir
    type: PATH
    objectType: DIRECTORY
    dataFlow: OUT
    default: "./output"
steps:
  - name: RenderBlender
    parameterSpace:
      taskParameterDefinitions:
        - name: Frame
          type: CHUNK[INT]
          range: "{{Param.Frames}}"
          chunks:
            defaultTaskCount: 10
            rangeConstraint: CONTIGUOUS
    script:
      actions:
        onRun:
          command: bash
          args: ["{{Task.File.Run}}"]
      embeddedFiles:
        - name: Run
          type: TEXT
          data: |
            set -xeuo pipefail
            
            mkdir -p '{{Param.OutputDir}}'
            
            # Parse the chunk range (e.g., "1-10") into start and end frames
            START_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f1)"
            END_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f2)"
            
            blender --background '{{Param.BlenderSceneFile}}' \
                    --render-output '{{Param.OutputDir}}/output_####' \
                    --render-format PNG \
                    --use-extension 1 \
                    -s "$START_FRAME" \
                    -e "$END_FRAME" \
                    --render-anim
```

이 예제에서 Deadline Cloud는 100프레임을 `1-10` 및와 같은 청크로 나누`11-20`고 각 태스크는 단일 Blender 호출로 청크를 렌더링합니다.

자세한 내용은 다음 항목을 참조하세요.
+ [Deadline Cloud에서 작업 청킹을 사용하여 프레임을 청크로 그룹화](examples-jb-task-chunking.md) - 비연속 변형Ready-to-submit 수 있는 청킹 샘플입니다.
+ [Deadline Cloud에 작업을 제출하는 방법](submit-jobs-how.md) - 대기열에 작업 번들을 제출합니다.