Deadline Cloud で送信する - Deadline クラウド

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

Deadline Cloud で送信する

ワーカーホストで Deadline Cloud ジョブを実行するには、Open Job Description (OpenJD) ジョブバンドルを作成して使用してジョブを設定します。バンドルは、ジョブの入力ファイルやジョブの出力を書き込む場所を指定するなどして、ジョブを設定します。このトピックには、ジョブバンドルを設定する方法の例が含まれています。

このセクションの手順に従う前に、以下を完了する必要があります。

AWS Deadline Cloud を使用してジョブを実行するには、次の手順を使用します。最初の AWS CloudShell タブを使用して、デベロッパーファームにジョブを送信します。2 番目の CloudShell タブを使用して、ワーカーエージェントの出力を表示します。

simple_job サンプルを送信する

ファームを作成してワーカーエージェントを実行したら、simple_jobサンプルを Deadline Cloud に送信できます。

Deadline Cloud にsimple_jobサンプルを送信するには
  1. 最初の CloudShell タブを選択します。

  2. GitHub からサンプルをダウンロードします。

    cd ~ git clone https://github.com/aws-deadline/deadline-cloud-samples.git
  3. ジョブバンドルサンプルディレクトリに移動します。

    cd ~/deadline-cloud-samples/job_bundles/
  4. simple_job サンプルを送信します。

    deadline bundle submit simple_job
  5. 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] ...
    注記

    ワーカーエージェントからのログ記録出力のみが表示されます。ジョブを実行するセッションには別のログがあります。

  6. 最初のタブを選択し、ワーカーエージェントが書き込むログファイルを検査します。

    1. ワーカーエージェントのログディレクトリに移動し、その内容を表示します。

      cd ~/demoenv-logs ls
    2. ワーカーエージェントが作成した最初のログファイルを出力します。

      cat worker-agent-bootstrap.log

      このファイルには、Deadline Cloud API を呼び出してフリートにワーカーリソースを作成し、フリートロールを引き受けた方法に関するワーカーエージェントの出力が含まれています。

    3. ワーカーエージェントがフリートに参加するときに、ログファイルの出力を出力します。

      cat worker-agent.log

      このログには、ワーカーエージェントが実行するすべてのアクションに関する出力が含まれますが、それらのリソースの IDs を除き、ジョブを実行するキューに関する出力は含まれません。

    4. キューリソース 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
  7. ジョブに関する情報を出力します。

    deadline job get

    ジョブを送信すると、システムはそれをデフォルトとして保存するため、ジョブ ID を入力する必要はありません。

パラメータsimple_jobを使用して を送信する

パラメータを使用してジョブを送信できます。次の手順では、simple_jobテンプレートを編集してカスタムメッセージを含め、 を送信しsimple_job、セッションログファイルを印刷してメッセージを表示します。

パラメータを使用してsimple_jobサンプルを送信するには
  1. 最初の CloudShell タブを選択し、ジョブバンドルサンプルディレクトリに移動します。

    cd ~/deadline-cloud-samples/job_bundles/
  2. simple_job テンプレートの内容を出力します。

    cat simple_job/template.yaml

    Message パラメータを含む parameterDefinitionsセクションは次のようになります。

    parameterDefinitions: - name: Message type: STRING default: Welcome to AWS Deadline Cloud!
  3. パラメータ値を使用してsimple_jobサンプルを送信し、ジョブの実行が完了するまで待ちます。

    deadline bundle submit simple_job \ -p "Message=Greetings from the developer getting started guide."
  4. カスタムメッセージを表示するには、最新のセッションログファイルを表示します。

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

ファイル I/O を使用して simple_file_job ジョブバンドルを作成する

レンダリングジョブは、シーン定義を読み取り、そこからイメージをレンダリングしてから、そのイメージを出力ファイルに保存する必要があります。このアクションをシミュレートするには、イメージをレンダリングする代わりに、ジョブに入力のハッシュを計算します。

ファイル I/O を使用して simple_file_job ジョブバンドルを作成するには
  1. 最初の CloudShell タブを選択し、ジョブバンドルサンプルディレクトリに移動します。

    cd ~/deadline-cloud-samples/job_bundles/
  2. 新しい名前simple_jobで のコピーを作成しますsimple_file_job

    cp -r simple_job simple_file_job
  3. ジョブテンプレートを次のように編集します。

    注記

    これらのステップnanoでは を使用することをお勧めします。を使用する場合はVim、 を使用して貼り付けモードを設定する必要があります:set paste

    1. テキストエディタでテンプレートを開きます。

      nano simple_file_job/template.yaml
    2. 次の typeobjectTypedataFlowおよび を追加しますparameterDefinitions

      - name: InFile type: PATH objectType: FILE dataFlow: IN - name: OutFile type: PATH objectType: FILE dataFlow: OUT
    3. 入力ファイルから読み取り、出力ファイルに書き込むファイルの末尾に、次の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、必ずインデントの代わりにスペースを使用してください。

    4. ファイルを保存し、テキストエディタを終了します。

  4. simple_file_job を送信する入出力ファイルのパラメータ値を指定します。

    deadline bundle submit simple_file_job \ -p "InFile=simple_job/template.yaml" \ -p "OutFile=hash.txt"
  5. ジョブに関する情報を出力します。

    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

次のステップ

Deadline Cloud CLI を使用してシンプルなジョブを送信する方法を学習したら、以下を確認できます。