

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

# 제한이 필요한 작업 제출
<a name="job-limit-job"></a>

제한을 작업 또는 작업 단계의 호스트 요구 사항으로 지정하여 제한을 적용합니다. 단계에서 제한을 지정하지 않고 해당 단계에서 연결된 리소스를 사용하는 경우 작업이 예약될 때 단계의 사용량은 제한에 포함되지 않습니다.

일부 Deadline Cloud 제출자를 사용하면 호스트 요구 사항을 설정할 수 있습니다. 제출자에서 한도의 금액 요구 사항 이름을 지정하여 한도를 적용할 수 있습니다.

제출자가 호스트 요구 사항 추가를 지원하지 않는 경우 작업에 대한 작업 템플릿을 편집하여 제한을 적용할 수도 있습니다.

**작업 번들의 작업 단계에 제한을 적용하려면**

1. 텍스트 편집기를 사용하여 작업에 대한 작업 템플릿을 엽니다. 작업 템플릿은 작업의 작업 번들 디렉터리에 있습니다. 자세한 내용은 *Deadline Cloud 개발자 안내서*의 [작업 번들](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/build-job-bundle.html)을 참조하세요.

1. 제한을 적용할 단계의 단계 정의를 찾습니다.

1. 단계 정의에 다음을 추가합니다. {{amount.name}} 한도의 금액 요구 사항 이름으로 바꿉니다. 일반적으로 사용하려면 `min` 값을 1로 설정해야 합니다.

------
#### [ YAML ]

   ```
     hostRequirements:
       amounts:
       - name: amount.{{name}}
         min: 1
   ```

------
#### [ JSON ]

   ```
   "hostRequirements": {
       "amounts": [
           {
               "name": "{{amount.name}}",
               "min": "1"
           }
       }
   }
   ```

------

   다음과 같이 작업 단계에 여러 제한을 추가할 수 있습니다. {{amount.name\_1}} 및 {{amount.name\_2}}를 한도의 금액 요구 사항 이름으로 바꿉니다.

------
#### [ YAML ]

   ```
     hostRequirements:
       amounts:
       - name: {{amount.name_1}}
         min: 1
       - name: {{amount.name_2}}
         min: 1
   ```

------
#### [ JSON ]

   ```
   "hostRequirements": {
       "amounts": [
           {
               "name": "amount.{{name_1}}",
               "min": "1"
           },
           {
               "name": "amount.{{name_2}}",
               "min": "1"
           }
       }
   }
   ```

------

1. 작업 템플릿에 대한 변경 사항을 저장합니다.

## 제출 후크를 사용하여 제한 자동화
<a name="job-limit-hooks"></a>

아티스트가 작업 템플릿을 수동으로 편집할 필요 없이 모든 작업 제출에 제한을 적용하려는 경우 [사전 제출 후크](https://github.com/aws-deadline/deadline-cloud/blob/mainline/docs/submission-hooks.md)를 사용하여 제출 시 모든 작업 템플릿에 호스트 요구 사항을 자동으로 주입할 수 있습니다.

사전 제출 후크는 작업이 제출되기 전에 실행되는 스크립트입니다. 후크는 작업 번들의를 수정`template.yaml`하여 한도에 대한 `hostRequirements` 금액 항목을 추가할 수 있습니다. 이 접근 방식을 사용하면 Deadline Cloud CLI 또는 DCC 제출자를 통해 제출된 모든 작업이 제한된 리소스에 대한 필요성을 선언할 수 있습니다.

전체 작업 예제는 Deadline Cloud [샘플 리포지토리의 라이선스 제한 제출 후크](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/submission_hooks/license_limits) 샘플을 참조하세요.

## End-to-end 예제: V-Ray 라이선스 제한 적용
<a name="job-limit-example"></a>

이 예제에서는 5개의 V-Ray 부동 라이선스에 대한 제한을 설정하고 스케줄러가 이를 적용하는지 확인하는 방법을 보여줍니다.

**V-Ray 라이선스 제한을 설정하고 테스트하려면**

1. 팜에 제한을 생성합니다.

   ```
   aws deadline create-limit \
       --farm-id {{farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}} \
       --display-name "VRay License" \
       --amount-requirement-name "amount.vray" \
       --max-count 5
   ```

1. 한도를 대기열에 연결합니다.

   ```
   aws deadline create-queue-limit-association \
       --farm-id {{farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}} \
       --queue-id {{queue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}} \
       --limit-id {{limit-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}}
   ```

1. 작업 템플릿에 호스트 요구 사항을 추가합니다.

   ```
   specificationVersion: jobtemplate-2023-09
   name: My VRay Render
   steps:
     - name: Render
       hostRequirements:
         amounts:
           - name: amount.vray
             min: 1
       script:
         actions:
           onRun:
             command: vray
             args: ["-scene", "{{Param.SceneFile}}"]
   ```

1. 작업을 제출합니다. 스케줄러를 사용하면 대기열`amount.vray`의 모든 작업에서를 사용하여 최대 5개의 작업을 동시에 실행할 수 있습니다. 슬롯을 사용할 수 있을 때까지 추가 작업은 `READY` 상태로 유지됩니다.

한도가 작동하는지 확인하려면 일시적으로 1`maxCount`로 설정하고 두 개의 작업을 제출합니다. 첫 번째 작업은 첫 번째 작업이 완료될 때까지 두 번째 작업이 `READY` 상태로 유지되는 동안 실행됩니다.