

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

# Deadline Cloud로 제출
<a name="submit-a-job"></a>

작업자 호스트에서 Deadline Cloud 작업을 실행하려면 Open Job Description(OpenJD) 작업 번들을 생성하고 사용하여 작업을 구성합니다. 번들은 예를 들어 작업에 대한 입력 파일과 작업의 출력을 쓸 위치를 지정하여 작업을 구성합니다. 이 주제에는 작업 번들을 구성할 수 있는 방법의 예가 포함되어 있습니다.

이 섹션의 절차를 따르려면 먼저 다음을 완료해야 합니다.
+ [Deadline Cloud 팜 생성](create-a-farm.md)
+ [Deadline Cloud 작업자 에이전트 실행](run-worker.md)

 AWS Deadline Cloud를 사용하여 작업을 실행하려면 다음 절차를 사용합니다. 첫 번째 AWS CloudShell 탭을 사용하여 개발자 팜에 작업을 제출합니다. 두 번째 CloudShell 탭을 사용하여 작업자 에이전트 출력을 봅니다.

**Topics**
+ [simple\$1job 샘플 제출](#submit-a-simplejob-sample)
+ [파라미터와 simple\$1job 함께 제출](#submit-with-parameter)
+ [파일 I/O를 사용하여 simple\$1file\$1job 작업 번들 생성](#create-job-bundle-with-file-io)
+ [다음 단계](#submit-a-job-next)

## simple\$1job 샘플 제출
<a name="submit-a-simplejob-sample"></a>

팜을 생성하고 작업자 에이전트를 실행한 후 simple\$1job 샘플을 Deadline Cloud에 제출할 수 있습니다.

**샘플을 Deadline Cloudsimple\$1job에 제출하려면**

1. 첫 번째 CloudShell 탭을 선택합니다.

1. GitHub에서 샘플을 다운로드합니다.

   ```
   cd ~
   git clone https://github.com/aws-deadline/deadline-cloud-samples.git
   ```

1. 작업 번들 샘플 디렉터리로 이동합니다.

   ```
   cd ~/deadline-cloud-samples/job_bundles/
   ```

1. simple\$1job 샘플을 제출합니다.

   ```
   deadline bundle submit simple_job
   ```

1. 두 번째 CloudShell 탭을 선택하여 호출`BatchGetJobEntities`, 세션 가져오기 및 세션 작업 실행에 대한 로깅 출력을 봅니다.

   ```
   ...
   [2024-03-27 16:00:21,846][INFO    ] 🔷 Session.Starting 🔷 [session-053d77cef82648fe2] Starting new Session. [queue-3ba4ff683ff54db09b851a2ed8327d7b/job-d34cc98a6e234b6f82577940ab4f76c6]
   [2024-03-27 16:00:21,853][INFO    ] 📤 API.Req 📤 [deadline:BatchGetJobEntity] resource={'farm-id': 'farm-3e24cfc9bbcd423e9c1b6754bc1', 'fleet-id': 'fleet-246ee60f46d44559b6cce010d05', 'worker-id': 'worker-75e0fce9c3c344a69bff57fcd83'} params={'identifiers': [{'jobDetails': {'jobId': 'job-d34cc98a6e234b6f82577940ab4'}}]} request_url=https://scheduling.deadline.us-west-2.amazonaws.com/2023-10-12/farms/farm-3e24cfc9bbcd423e /fleets/fleet-246ee60f46d44559b1 /workers/worker- 75e0fce9c3c344a69b /batchGetJobEntity
   [2024-03-27 16:00:22,013][INFO    ] 📥 API.Resp 📥 [deadline:BatchGetJobEntity](200) params={'entities': [{'jobDetails': {'jobId': 'job-d34cc98a6e234b6f82577940ab6', 'jobRunAsUser': {'posix': {'user': 'job-user', 'group': 'job-group'}, 'runAs': 'QUEUE_CONFIGURED_USER'}, 'logGroupName': '/aws/deadline/farm-3e24cfc9bbcd423e9c1b6754bc1/queue-3ba4ff683ff54db09b851a2ed83', 'parameters': '*REDACTED*', 'schemaVersion': 'jobtemplate-2023-09'}}], 'errors': []} request_id=a3f55914-6470-439e-89e5-313f0c6
   [2024-03-27 16:00:22,013][INFO    ] 🔷 Session.Add 🔷 [session-053d77cef82648fea9c69827182] Appended new SessionActions. (ActionIds: ['sessionaction-053d77cef82648fea9c69827182-0']) [queue-3ba4ff683ff54db09b851a2ed8b/job-d34cc98a6e234b6f82577940ab6]
   [2024-03-27 16:00:22,014][WARNING ] 🔷 Session.User 🔷 [session-053d77cef82648fea9c69827182] Running as the Worker Agent's user. (User: cloudshell-user) [queue-3ba4ff683ff54db09b851a2ed8b/job-d34cc98a6e234b6f82577940ac6]
   [2024-03-27 16:00:22,015][WARNING ] 🔷 Session.AWSCreds 🔷 [session-053d77cef82648fea9c69827182] AWS Credentials are not available: Queue has no IAM Role. [queue-3ba4ff683ff54db09b851a2ed8b/job-d34cc98a6e234b6f82577940ab6]
   [2024-03-27 16:00:22,026][INFO    ] 🔷 Session.Logs 🔷 [session-053d77cef82648fea9c69827182] Logs streamed to: AWS CloudWatch Logs. (LogDestination: /aws/deadline/farm-3e24cfc9bbcd423e9c1b6754bc1/queue-3ba4ff683ff54db09b851a2ed83/session-053d77cef82648fea9c69827181) [queue-3ba4ff683ff54db09b851a2ed83/job-d34cc98a6e234b6f82577940ab4]
   [2024-03-27 16:00:22,026][INFO    ] 🔷 Session.Logs 🔷 [session-053d77cef82648fea9c69827182] Logs streamed to: local file. (LogDestination: /home/cloudshell-user/demoenv-logs/queue-3ba4ff683ff54db09b851a2ed8b/session-053d77cef82648fea9c69827182.log) [queue-3ba4ff683ff54db09b851a2ed83/job-d34cc98a6e234b6f82577940ab4]
   ...
   ```
**참고**  
작업자 에이전트의 로깅 출력만 표시됩니다. 작업을 실행하는 세션에 대한 별도의 로그가 있습니다.

1. 첫 번째 탭을 선택한 다음 작업자 에이전트가 작성하는 로그 파일을 검사합니다.

   1. 작업자 에이전트 로그 디렉터리로 이동하여 내용을 확인합니다.

      ```
      cd ~/demoenv-logs
      ls
      ```

   1. 작업자 에이전트가 생성하는 첫 번째 로그 파일을 인쇄합니다.

      ```
      cat worker-agent-bootstrap.log
      ```

      이 파일에는 Deadline Cloud API를 호출하여 플릿에 작업자 리소스를 생성한 다음 플릿 역할을 수임한 방법에 대한 작업자 에이전트 출력이 포함되어 있습니다.

   1. 작업자 에이전트가 플릿에 조인할 때 로그 파일 출력을 인쇄합니다.

      ```
      cat worker-agent.log
      ```

      이 로그에는 작업자 에이전트가 수행하는 모든 작업에 대한 출력이 포함되지만 해당 리소스의 IDs를 제외하고 작업을 실행하는 대기열에 대한 출력은 포함되지 않습니다.

   1. 대기열 리소스 ID와 동일한 디렉터리의 각 세션에 대한 로그 파일을 인쇄합니다.

      ```
      cat $DEV_QUEUE_ID/session-*.log
      ```

      작업이 성공하면 로그 파일 출력은 다음과 유사합니다.

      ```
      cat $DEV_QUEUE_ID/$(ls -t $DEV_QUEUE_ID | head -1)
                                  
      2024-03-27 16:00:22,026 WARNING Session running with no AWS Credentials.
      2024-03-27 16:00:22,404 INFO 
      2024-03-27 16:00:22,405 INFO ==============================================
      2024-03-27 16:00:22,405 INFO --------- Running Task
      2024-03-27 16:00:22,405 INFO ==============================================
      2024-03-27 16:00:22,406 INFO ----------------------------------------------
      2024-03-27 16:00:22,406 INFO Phase: Setup
      2024-03-27 16:00:22,406 INFO ----------------------------------------------
      2024-03-27 16:00:22,406 INFO Writing embedded files for Task to disk.
      2024-03-27 16:00:22,406 INFO Mapping: Task.File.runScript -> /sessions/session-053d77cef82648fea9c698271812a/embedded_fileswa_gj55_/tmp2u9yqtsz
      2024-03-27 16:00:22,406 INFO Wrote: runScript -> /sessions/session-053d77cef82648fea9c698271812a/embedded_fileswa_gj55_/tmp2u9yqtsz
      2024-03-27 16:00:22,407 INFO ----------------------------------------------
      2024-03-27 16:00:22,407 INFO Phase: Running action
      2024-03-27 16:00:22,407 INFO ----------------------------------------------
      2024-03-27 16:00:22,407 INFO Running command /sessions/session-053d77cef82648fea9c698271812a/tmpzuzxpslm.sh
      2024-03-27 16:00:22,414 INFO Command started as pid: 471
      2024-03-27 16:00:22,415 INFO Output:
      2024-03-27 16:00:22,420 INFO Welcome to AWS Deadline Cloud!
      2024-03-27 16:00:22,571 INFO 
      2024-03-27 16:00:22,572 INFO ==============================================
      2024-03-27 16:00:22,572 INFO --------- Session Cleanup
      2024-03-27 16:00:22,572 INFO ==============================================
      2024-03-27 16:00:22,572 INFO Deleting working directory: /sessions/session-053d77cef82648fea9c698271812a
      ```

1. 작업에 대한 정보를 인쇄합니다.

   ```
   deadline job get
   ```

   작업을 제출하면 시스템이 작업을 기본값으로 저장하므로 작업 ID를 입력할 필요가 없습니다.

## 파라미터와 simple\$1job 함께 제출
<a name="submit-with-parameter"></a>

파라미터를 사용하여 작업을 제출할 수 있습니다. 다음 절차에서는 사용자 지정 메시지를 포함하도록 simple\$1job 템플릿을 편집하고 simple\$1job를 제출한 다음 세션 로그 파일을 인쇄하여 메시지를 확인합니다.

**파라미터를 사용하여 simple\$1job 샘플을 제출하려면**

1. 첫 번째 CloudShell 탭을 선택한 다음 작업 번들 샘플 디렉터리로 이동합니다.

   ```
   cd ~/deadline-cloud-samples/job_bundles/
   ```

1. simple\$1job 템플릿의 내용을 인쇄합니다.

   ```
   cat simple_job/template.yaml
   ```

   `Message` 파라미터가 있는 `parameterDefinitions` 섹션은 다음과 같아야 합니다.

   ```
   parameterDefinitions:
   - name: Message
     type: STRING
     default: Welcome to AWS Deadline Cloud!
   ```

1. 파라미터 값과 함께 simple\$1job 샘플을 제출한 다음 작업 실행이 완료될 때까지 기다립니다.

   ```
   deadline bundle submit simple_job \
       -p "Message=Greetings from the developer getting started guide."
   ```

1. 사용자 지정 메시지를 보려면 최신 세션 로그 파일을 확인합니다.

   ```
   cd ~/demoenv-logs
   cat $DEV_QUEUE_ID/$(ls -t $DEV_QUEUE_ID | head -1)
   ```

## 파일 I/O를 사용하여 simple\$1file\$1job 작업 번들 생성
<a name="create-job-bundle-with-file-io"></a>

렌더링 작업은 장면 정의를 읽고 이미지를 렌더링한 다음 해당 이미지를 출력 파일에 저장해야 합니다. 이미지를 렌더링하는 대신 작업을 계산하여 입력의 해시를 생성하여이 작업을 시뮬레이션할 수 있습니다.

**파일 I/O를 사용하여 simple\$1file\$1job 작업 번들을 생성하려면**

1. 첫 번째 CloudShell 탭을 선택한 다음 작업 번들 샘플 디렉터리로 이동합니다.

   ```
   cd ~/deadline-cloud-samples/job_bundles/
   ```

1. 새 이름을 `simple_job` 사용하여의 복사본을 만듭니다`simple_file_job`.

   ```
   cp -r simple_job simple_file_job
   ```

1. 다음과 같이 작업 템플릿을 편집합니다.
**참고**  
이러한 단계에는 nano를 사용하는 것이 좋습니다. 를 사용하려면를 사용하여 붙여넣기 모드를 설정해야 Vim합니다`:set paste`.

   1. 텍스트 편집기에서 템플릿을 엽니다.

      ```
      nano simple_file_job/template.yaml
      ```

   1. 다음 `type`, `objectType`및를 추가합니다`dataFlow``parameterDefinitions`.

      ```
      - name: InFile
        type: PATH
        objectType: FILE
        dataFlow: IN
      - name: OutFile
        type: PATH
        objectType: FILE
        dataFlow: OUT
      ```

   1. 다음 `bash` 스크립트 명령을 입력 파일에서 읽고 출력 파일에 쓰는 파일의 끝에 추가합니다.

      ```
              # hash the input file, and write that to the output
              sha256sum "{{Param.InFile}}" > "{{Param.OutFile}}"
      ```

      업데이트된는 다음과 정확히 일치해야 `template.yaml` 합니다.

      ```
      specificationVersion: 'jobtemplate-2023-09'
      name: Simple File Job Bundle Example
      parameterDefinitions:
      - name: Message
        type: STRING
        default: Welcome to AWS Deadline Cloud!
      - name: InFile
        type: PATH
        objectType: FILE
        dataFlow: IN
      - name: OutFile
        type: PATH
        objectType: FILE
        dataFlow: OUT
      steps:
      - name: WelcomeToDeadlineCloud
        script:
          actions:
            onRun:
              command: '{{Task.File.Run}}'
          embeddedFiles:
          - name: Run
            type: TEXT
            runnable: true
            data: |
              #!/usr/bin/env bash
              echo "{{Param.Message}}"
      
              # hash the input file, and write that to the output
              sha256sum "{{Param.InFile}}" > "{{Param.OutFile}}"
      ```
**참고**  
에서 간격을 조정하려면 들여쓰기 대신 공백을 사용해야 `template.yaml`합니다.

   1. 파일을 저장하고 텍스트 편집기를 종료합니다.

1. 입력 및 출력 파일의 파라미터 값을 제공하여 simple\$1file\$1job을 제출합니다.

   ```
   deadline bundle submit simple_file_job \
       -p "InFile=simple_job/template.yaml" \
       -p "OutFile=hash.txt"
   ```

1. 작업에 대한 정보를 인쇄합니다.

   ```
   deadline job get
   ```
   + 다음과 같은 출력이 표시됩니다.

     ```
     parameters:
       Message:
         string: Welcome to AWS Deadline Cloud!
       InFile:
         path: /local/home/cloudshell-user/BundleFiles/JobBundle-Examples/simple_job/template.yaml
       OutFile:
         path: /local/home/cloudshell-user/BundleFiles/JobBundle-Examples/hash.txt
     ```
   + 상대 경로만 제공했지만 파라미터에는 전체 경로가 설정되어 있습니다. 는 경로의 유형이 일 때 파라미터로 제공되는 모든 경로에 현재 작업 디렉터리를 AWS CLI 조인합니다`PATH`.
   + 다른 터미널 창에서 실행되는 작업자 에이전트가 작업을 픽업하고 실행합니다. 이 작업은 다음 명령을 사용하여 볼 수 있는 `hash.txt` 파일을 생성합니다.

     ```
     cat hash.txt
     ```

     이 명령은 다음과 유사한 출력을 인쇄합니다.

     ```
     eaa2df5d34b54be5ac34c56a24a8c237b8487231a607eaf530a04d76b89c9cd3 /local/home/cloudshell-user/BundleFiles/JobBundle-Examples/simple_job/template.yaml
     ```

## 다음 단계
<a name="submit-a-job-next"></a>

Deadline Cloud CLI를 사용하여 간단한 작업을 제출하는 방법을 학습한 후 다음을 탐색할 수 있습니다.
+ [Deadline Cloud에서 작업 첨부 파일이 있는 작업 제출](run-jobs-job-attachments.md) 다른 운영 체제를 실행하는 호스트에서 작업을 실행하는 방법을 알아봅니다.
+ [Deadline Cloud의 개발자 팜에 서비스 관리형 플릿 추가](service-managed-fleet.md) Deadline Cloud에서 관리하는 호스트에서 작업을 실행합니다.
+ [Deadline Cloud에서 팜 리소스 정리](cleaning-up.md) -이 자습서에서 사용한 리소스를 종료합니다.