Kirim dengan Deadline Cloud - Batas Waktu Cloud

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kirim dengan Deadline Cloud

Untuk menjalankan pekerjaan Deadline Cloud di host pekerja Anda, Anda membuat dan menggunakan paket pekerjaan Open Job Description (OpenJD) untuk mengonfigurasi pekerjaan. Bundel mengkonfigurasi pekerjaan, misalnya dengan menentukan file input untuk pekerjaan dan di mana untuk menulis output pekerjaan. Topik ini mencakup contoh cara Anda dapat mengonfigurasi bundel pekerjaan.

Sebelum Anda dapat mengikuti prosedur di bagian ini, Anda harus menyelesaikan yang berikut:

Untuk menggunakan AWS Deadline Cloud untuk menjalankan pekerjaan, gunakan prosedur berikut. Gunakan AWS CloudShell tab pertama untuk mengirimkan pekerjaan ke peternakan pengembang Anda. Gunakan CloudShell tab kedua untuk melihat output agen pekerja.

Kirim simple_job sampel

Setelah Anda membuat peternakan dan menjalankan agen pekerja, Anda dapat mengirimkan simple_job contoh ke Deadline Cloud.

Untuk mengirimkan simple_job contoh ke Deadline Cloud
  1. Pilih CloudShell tab pertama Anda.

  2. Unduh sampel dari GitHub.

    cd ~ git clone https://github.com/aws-deadline/deadline-cloud-samples.git
  3. Arahkan ke direktori sampel bundel pekerjaan.

    cd ~/deadline-cloud-samples/job_bundles/
  4. Kirim simple_job sampel.

    deadline bundle submit simple_job
  5. Pilih CloudShell tab kedua Anda untuk melihat output logging tentang panggilanBatchGetJobEntities, mendapatkan sesi, dan menjalankan tindakan sesi.

    ... [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] ...
    catatan

    Hanya output logging dari agen pekerja yang ditampilkan. Ada log terpisah untuk sesi yang menjalankan pekerjaan.

  6. Pilih tab pertama Anda, lalu periksa file log yang ditulis agen pekerja.

    1. Arahkan ke direktori log agen pekerja dan lihat isinya.

      cd ~/demoenv-logs ls
    2. Cetak file log pertama yang dibuat oleh agen pekerja.

      cat worker-agent-bootstrap.log

      File ini berisi output agen pekerja tentang bagaimana itu disebut Deadline Cloud API untuk membuat sumber daya pekerja di armada Anda, dan kemudian mengambil peran armada.

    3. Cetak output file log saat agen pekerja bergabung dengan armada.

      cat worker-agent.log

      Log ini berisi output tentang semua tindakan yang diambil agen pekerja, tetapi tidak berisi output tentang antrian tempat ia menjalankan pekerjaan, kecuali untuk sumber daya tersebut IDs .

    4. Cetak file log untuk setiap sesi dalam direktori yang diberi nama sama dengan id sumber daya antrian.

      cat $DEV_QUEUE_ID/session-*.log

      Jika pekerjaan berhasil, output file log akan mirip dengan yang berikut:

      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. Cetak informasi tentang pekerjaan itu.

    deadline job get

    Saat Anda mengirimkan pekerjaan, sistem menyimpannya sebagai default sehingga Anda tidak perlu memasukkan ID pekerjaan.

Kirim simple_job dengan parameter

Anda dapat mengirimkan pekerjaan dengan parameter. Dalam prosedur berikut, Anda mengedit simple_job template untuk menyertakan pesan kustom, kirimkan simple_job, lalu cetak file log sesi untuk melihat pesan.

Untuk mengirimkan simple_job sampel dengan parameter
  1. Pilih CloudShell tab pertama Anda, lalu arahkan ke direktori sampel bundel pekerjaan.

    cd ~/deadline-cloud-samples/job_bundles/
  2. Cetak isi simple_job templat.

    cat simple_job/template.yaml

    parameterDefinitionsBagian dengan Message parameter akan terlihat seperti berikut:

    parameterDefinitions: - name: Message type: STRING default: Welcome to AWS Deadline Cloud!
  3. Kirim simple_job sampel dengan nilai parameter, lalu tunggu pekerjaan selesai berjalan.

    deadline bundle submit simple_job \ -p "Message=Greetings from the developer getting started guide."
  4. Untuk melihat pesan kustom, lihat file log sesi terbaru.

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

Buat bundel pekerjaan simple_file_job dengan file I/O

Pekerjaan render perlu membaca definisi adegan, merender gambar darinya, dan kemudian menyimpan gambar itu ke file output. Anda dapat mensimulasikan tindakan ini dengan membuat pekerjaan menghitung hash input alih-alih merender gambar.

Untuk membuat bundel pekerjaan simple_file_job dengan file I/O
  1. Pilih CloudShell tab pertama Anda, lalu arahkan ke direktori sampel bundel pekerjaan.

    cd ~/deadline-cloud-samples/job_bundles/
  2. Buat salinan simple_job dengan nama barusimple_file_job.

    cp -r simple_job simple_file_job
  3. Edit template pekerjaan sebagai berikut:

    catatan

    Kami menyarankan Anda menggunakan nano untuk langkah-langkah ini. Jika Anda lebih suka menggunakan Vim, Anda harus mengatur mode tempel menggunakan:set paste.

    1. Buka template di editor teks.

      nano simple_file_job/template.yaml
    2. Tambahkan yang berikut initype,objectType, dan dataFlowparameterDefinitions.

      - name: InFile type: PATH objectType: FILE dataFlow: IN - name: OutFile type: PATH objectType: FILE dataFlow: OUT
    3. Tambahkan perintah bash script berikut ke akhir file yang membaca dari file input dan menulis ke file output.

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

      Yang diperbarui template.yaml harus sama persis dengan yang berikut:

      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}}"
      catatan

      Jika Anda ingin menyesuaikan spasi ditemplate.yaml, pastikan Anda menggunakan spasi alih-alih lekukan.

    4. Simpan file, dan keluar dari editor teks.

  4. Berikan nilai parameter untuk file input dan output untuk mengirimkan simple_file_job.

    deadline bundle submit simple_file_job \ -p "InFile=simple_job/template.yaml" \ -p "OutFile=hash.txt"
  5. Cetak informasi tentang pekerjaan itu.

    deadline job get
    • Anda akan melihat output seperti berikut:

      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
    • Meskipun Anda hanya menyediakan jalur relatif, parameter memiliki jalur lengkap yang disetel. AWS CLI Menggabungkan direktori kerja saat ini ke jalur apa pun yang disediakan sebagai parameter saat jalur memiliki tipePATH.

    • Agen pekerja yang berjalan di jendela terminal lain mengambil dan menjalankan pekerjaan. Tindakan ini membuat hash.txt file, yang dapat Anda lihat dengan perintah berikut.

      cat hash.txt

      Perintah ini akan mencetak output yang mirip dengan berikut ini.

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

Langkah selanjutnya

Setelah mempelajari cara mengirimkan pekerjaan sederhana menggunakan Deadline Cloud CLI, Anda dapat menjelajahi: