

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 タブを使用して、デベロッパーファームにジョブを送信します。2 番目の 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 Cloud にsimple\$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. 2 番目の 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) このチュートリアルで使用したリソースをシャットダウンするには、 を使用します。