View a markdown version of this page

Unduhan otomatis - AWS Awan Batas Waktu

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

Unduhan otomatis

Deadline CLI menyediakan perintah untuk mengunduh output dari semua tugas dalam antrian yang selesai sejak terakhir kali perintah yang sama dijalankan. Anda dapat mengonfigurasi ini sebagai tugas cron atau tugas terjadwal untuk dijalankan berulang kali. Konfigurasi ini mengatur pengunduhan otomatis output secara terus menerus.

Sebelum menyiapkan unduhan otomatis, ikuti langkah-langkah di Profil penyimpanan untuk lampiran pekerjaan untuk mengonfigurasi semua jalur data aset untuk diunggah dan diunduh. Jika pekerjaan menggunakan jalur keluaran yang tidak ada dalam profil penyimpanannya, maka unduhan otomatis akan melewatkan pengunduhan output tersebut dan mencetak pesan peringatan untuk meringkas file yang tidak diunduh. Demikian pula, jika pekerjaan dikirimkan tanpa profil penyimpanan, unduhan otomatis akan melewatkan pekerjaan itu dan mencetak pesan peringatan. Secara default, pengirim Deadline Cloud menampilkan pesan peringatan untuk jalur yang berada di luar profil penyimpanan untuk membantu memastikan konfigurasi yang benar.

Melakukan konfigurasi AWS credentials

Unduhan otomatis menggunakan Deadline CLI untuk terus mengunduh output pekerjaan. Untuk mengotentikasi unduhan ini, Anda memerlukan kredentif IAM jangka panjang. Kredentif monitor Deadline Cloud kedaluwarsa, jadi Anda tidak dapat menggunakannya untuk tujuan ini.

Ikuti langkah-langkah di bawah ini untuk mengatur kredenSIAL jangka panjang.

penting

Perhatikan peringatan berikut:

  • JANGAN gunakan kredentif root akun Anda untuk mengakses AWS sumber daya. KredenSIAL ini menyediakan akses akun tidak terbatas dan sulit untuk dicabut.

  • JANGAN menaruh kunci akses literal atau informasi kredensi dalam file aplikasi Anda. Jika Anda melakukannya, Anda membuat risiko mengekspos kredenSIAL Anda secara tidak sengaja jika, misalnya, Anda mengunggah proyek ke repositori publik.

  • JANGAN ser takan file yang berisi kredenSIAL di area proyek Anda.

  • Amankan kunci akses Anda. Jangan berikan kunci akses Anda kepada pihak yang tidak berwenang, bahkan untuk membantu menemukan pengidentifikasi akun Anda. Dengan melakukan tindakan ini, Anda mungkin memberi seseorang akses permanen ke akun Anda.

  • Ketahuilah bahwa kredenSIAL apa pun yang disimpan dalam file AWS kredenSIAL bersama disimpan dalam teks biasa.

Untuk detail selengkapnya, lihat Praktik terbaik untuk mengelola kunci AWS akses di Refer AWS ensi Umum.

Mmebuat pengguna IAM
  1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, pilih Pengguna dan kemudian pilih Buat pengguna.

  3. Beri nama penggunadeadline-output-downloader. Kosongkan kotak centang untuk Berikan akses pengguna ke Konsol Manajemen AWS, lalu pilih Ber ikutnya.

  4. Pilih Lamp irkan kebijakan secara langsung.

  5. Pilih Buat kebijakan untuk membuat kebijakan kustom dengan izin minimum yang diperlukan.

  6. Di editor JSON, tentukan izin berikut:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "DeadlineCloudOutputDownload", "Effect": "Allow", "Action": [ "deadline:AssumeQueueRoleForUser", "deadline:ListQueueEnvironments", "deadline:ListSessions", "deadline:ListSessionActions", "deadline:SearchJobs", "deadline:GetJob", "deadline:GetQueue", "deadline:GetStorageProfileForQueue" ], "Resource": "*" } ] }
  7. Beri nama kebijakan DeadlineCloudOutputDownloadPolicy dan pilih Buat kebijakan.

  8. Kembali ke halaman pembuatan pengguna, segarkan daftar kebijakan, dan pilih yang baru saja DeadlineCloudOutputDownloadPolicy Anda buat, lalu pilih Ber ikutnya.

  9. Tinjau detail pengguna dan kemudian pilih Buat pengguna.

Buat kunci akses
  1. Dari halaman detail pengguna, pilih tab Kreden sibilitas keamanan. Pada bagian Access key, pilih Buat access key.

  2. Tunjukkan bahwa Anda ingin menggunakan kunci untuk Lainnya, lalu pilih Ber ikutnya, lalu pilih Buat kunci akses.

  3. Pada halaman Ambil kunci akses, pilih Tampilkan untuk mengungkapkan nilai kunci akses rahasia pengguna Anda. Anda dapat menyalin kredensialnya atau mengunduh file.csv.

Simpan kunci akses pengguna
  • Simpan kunci akses pengguna dalam file AWS kredensional di sistem Anda:

    • PadaLinux, file tersebut terletak di ~/.aws/credentials

    • PadaWindows, file tersebut terletak di %USERPROFILE\.aws\credentials

    Ganti tombol berikut:

    [deadline-downloader] aws_access_key_id=ACCESS_KEY_ID aws_secret_access_key=SECRET_ACCESS_KEY region=YOUR_AWS_REGION
penting

Jika Anda tidak lagi membutuhkan pengguna IAM ini, kami sarankan Anda menghapusnya agar sesuai dengan praktik terbaik AWS keamanan. Kami menyarankan Anda meminta pengguna manusia Anda untuk menggunakan kredenSIAL sementara AWS IAM Identity Center saat mengakses AWS.

Prasyarat

Selesaikan langkah-langkah berikut sebelum membuat pekerjaan cron atau tugas terjadwal untuk unduhan otomatis.

  1. Jika Anda belum melakukannya, instal Python.

  2. Instal Deadline CLI dengan menjalankan:

    python -m pip install deadline
  3. Konfirmasikan versi Deadline CLI adalah 0.52.1 atau yang lebih baru dengan perintah berikut.

    $ deadline --version deadline, version 0.52.1

Uji perintah unduhan keluaran

Untuk memverifikasi perintah berfungsi di lingkungan Anda
  1. Dapatkan jalan menuju Deadline

    Linux and macOS
    $ which deadline
    Windows
    C:\> where deadline
    PowerShell
    PS C:\> Get-Command deadline
  2. Jalankan perintah sync-output ke bootstrap.

    /path/to/deadline queue sync-output \ --profile deadline-downloader \ --farm-id YOUR_FARM_ID \ --queue-id YOUR_QUEUE_ID \ --storage-profile-id YOUR_PROFILE_ID \ --checkpoint-dir /path/to/checkpoint/directory \
  3. Anda hanya perlu melakukan langkah ini jika mesin pengunduh Anda sama dengan mesin pengiriman. Ganti --storage-profile-id YOUR_PROFILE_ID \ di atas dengan --ignore-storage-profiles

  4. Kirim pekerjaan tes.

    1. Unduh file.zip dari GitHub.

      1. Buka repositori deadline-cloud-sample GitHub .

      2. Pilih Kode dan kemudian, dari menu tarik-turun, pilih Unduh ZIP.

      3. Buka zip arsip yang diunduh ke direktori lokal.

    2. Jalankan .

      cd /path/to/unzipped/deadline-cloud-samples-mainline/job_bundles/job_attachments_devguide_output
    3. Jalankan .

      deadline bundle submit .
      1. Jika Anda tidak memiliki pengaturan konfigurasi tenggat waktu default, Anda mungkin perlu memberikan yang berikut di baris perintah.

        --farm-id YOUR-FARM-ID --queue-id YOUR-QUEUE-ID
    4. Tunggu pekerjaan selesai sebelum melanjutkan ke langkah berikutnya.

  5. Jalankan perintah sync-output lagi.

    /path/to/deadline queue sync-output \ --profile deadline-downloader \ --farm-id YOUR_FARM_ID \ --queue-id YOUR_QUEUE_ID \ --storage-profile-id YOUR_PROFILE_ID \ --checkpoint-dir /path/to/checkpoint/directory
  6. Verifikasi hal berikut:

    • Output pekerjaan pengujian Anda muncul di direktori tujuan.

    • File pos pemeriksaan dibuat di direktori pos pemeriksaan yang Anda tentukan.

Siapkan unduhan terjadwal

Pilih tab untuk sistem operasi Anda untuk mempelajari cara mengonfigurasi unduhan otomatis untuk setiap 5 menit.

Linux
  1. Verifikasi Batas Waktu Pemasangan CLI

    Dapatkan jalur yang tepat ke tenggat waktu Anda yang dapat dieksekusi:

    $ which deadline

    Perhatikan jalur ini (misalnya,/opt/homebrew/bin/deadline) untuk digunakan dalam file plist.

  2. Buat Direktori Pos Pemeriksaan

    Buat direktori tempat file checkpoint akan disimpan. Pastikan izin yang tepat bagi pengguna Anda untuk menjalankan perintah.

    $ mkdir -p /path/to/checkpoint/directory
  3. Buat Direktori Log

    Buat direktori untuk log pekerjaan cron:

    $ mkdir -p /path/to/logs

    Pertimbangkan untuk mengatur rotasi log pada file log menggunakan https://www.redhat.com/en/blog/setting-logrotate

  4. Periksa Crontab Saat Ini

    Lihat crontab Anda saat ini untuk melihat lowongan yang ada:

    $ crontab -l
  5. Edit Crontab

    Buka file crontab Anda untuk diedit:

    $ crontab -e

    Pertama kali Anda menjalankan perintah, Anda mungkin diminta untuk memilih editor (nano, vim, dan sebagainya).

  6. Tambahkan Entri Pekerjaan Cron

    Tambahkan baris berikut untuk menjalankan pekerjaan setiap 5 menit (ganti jalur dengan nilai aktual dari langkah 1 dan 2):

    */5 * * * * /path/to/deadline queue sync-output --profile deadline-downloader --farm-id YOUR_FARM_ID --queue-id YOUR_QUEUE_ID --storage-profile-id YOUR_PROFILE_ID --checkpoint-dir /path/to/checkpoint/directory >> /path/to/logs/deadline_sync.log 2>&1
  7. Verifikasi Instalasi Pekerjaan Cron

    Setelah menyimpan dan keluar dari editor, verifikasi tugas cron ditambahkan:

    $ crontab -l

    Anda harus melihat pekerjaan baru Anda terdaftar.

  8. Periksa Status Layanan Cron

    Pastikan layanan cron berjalan:

    # For systemd systems (most modern Linux distributions) $ sudo systemctl status cron # or $ sudo systemctl status crond # For older systems $ sudo service cron status

    Jika tidak berjalan, mulai:

    $ sudo systemctl start cron $ sudo systemctl enable cron # Enable auto-start on boot
macOS
  1. Verifikasi Batas Waktu Pemasangan CLI

    Dapatkan jalur yang tepat ke tenggat waktu Anda yang dapat dieksekusi:

    $ which deadline

    Perhatikan jalur ini (misalnya,/opt/homebrew/bin/deadline) untuk digunakan dalam file plist.

  2. Buat Direktori Checkpoint dan Direktori Log

    Buat direktori tempat file checkpoint akan disimpan:

    $ mkdir -p /path/to/checkpoint/directory $ mkdir -p /path/to/logs

    Pertimbangkan untuk mengatur rotasi log pada file log menggunakan https://formulae.brew.sh/formula/logrotate

  3. Buat file Plist

    Buat file konfigurasi di ~/Library/LaunchAgents/com.user.deadlinesync.plist dengan konten berikut (ganti /path/to/deadline dengan jalur aktual dari langkah 1):

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.user.deadlinesync</string> <key>ProgramArguments</key> <array> <string>/path/to/deadline</string> <string>queue</string> <string>sync-output</string> <string>--profile</string> <string>deadline-downloader</string> <string>--farm-id</string> <string>YOUR_FARM_ID</string> <string>--queue-id</string> <string>YOUR_QUEUE_ID</string> <string>--storage-profile-id</string> <string>YOUR STORAGE PROFILE ID</string> <string>--checkpoint-dir</string> <string>/path/to/checkpoint/dir</string> </array> <key>RunAtLoad</key> <true/> <key>UserName</key> <string>YOUR_USER_NAME</string> <key>StandardOutPath</key> <string>/path/to/logs/deadline_sync.log</string> <key>StartInterval</key> <integer>300</integer> </dict> </plist>

    Ganti --storage-profile-id YOUR_PROFILE_ID di atas dengan --ignore-storage-profiles jika mesin pengunduh Anda sama dengan mesin pengirim.

  4. Validasi File Plist

    Validasi sintaks XML file plist Anda:

    $ plutil -lint ~/Library/LaunchAgents/com.user.deadlinesync.plist

    Perintah mengembalikan “OK” jika file valid.

  5. Periksa Agen Peluncuran yang Ada atau Launch Daemon

    Periksa apakah agen peluncuran sudah dimuat:

    $ launchctl list | grep deadlinesync OR $ sudo launchctl list | grep deadlinesync

    Jika ada, bongkar dulu:

    $ launchctl bootout gui/$(id -u)/com.user.deadlinesync OR $ sudo launchctl bootout system/com.user.deadlinesync
  6. Buat dan bootstrap

    Untuk menjalankan tugas ini saat pengguna masuk, jalankan sebagai LaunchAgent. Untuk menjalankan tugas ini tanpa pengguna masuk setiap kali mesin berjalan, jalankan sebagai LaunchDaemon.

    1. Untuk menjalankan sebagai LaunchAgent:

      1. Gunakan konfigurasi yang dibuat di bawah ~/Library/LaunchAgents/com.user.deadlinesync.plist

      2. Kemudian muat konfigurasi menggunakan perintah bootstrap:

        $ launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.user.deadlinesync.plist
    2. Untuk menjalankan sebagai LaunchDaemon:

      1. Pindahkan file Pilst dan ubah izin dengan menjalankan yang berikut:

        $ sudo mv ~/Library/LaunchAgents/com.user.deadlinesync.plist /Library/LaunchDaemons/ $ sudo chown root:wheel /Library/LaunchDaemons/com.user.deadlinesync.plist $ sudo chmod 644 /Library/LaunchDaemons/com.user.deadlinesync.plist
      2. Muat agen peluncuran menggunakan perintah bootstrap modern:

        $ sudo launchctl bootstrap system /Library/LaunchDaemons/com.user.deadlinesync.plist
  7. Verifikasi Status

    Jika Anda melakukan bootstrap, LaunchAgent jalankan hal berikut untuk mengonfirmasi bahwa itu dimuat:

    $ launchctl list | grep deadlinesync

    Jika Anda melakukan bootstrap LaunchDaemon, konfirmasikan bahwa itu dimuat dengan menjalankan:

    $ sudo launchctl list | grep deadlinesync

    Outputnya akan terlihat seperti

    SOME_PID_NUMBER 0 com.user.deadlinesync

    Untuk informasi status terperinci:

    $ launchctl print gui/$(id -u)/com.user.deadlinesync

    Ini menunjukkan status saat ini, argumen program, variabel lingkungan, interval run, dan riwayat eksekusi.

Windows
catatan

Tugas terjadwal yang dibuat menggunakan instruksi ini hanya berfungsi saat pengguna masuk.

Untuk mengaturnya saat startup sistem tanpa memerlukan login pengguna, lihat Windows dokumentasi resmi.

Untuk semua langkah di bawah ini gunakan Command Prompt - jalankan sebagai Administrator:

  1. Verifikasi Batas Waktu Pemasangan CLI

    Temukan tenggat waktu yang dapat dieksekusi:

    C:\> where deadline

    Perhatikan jalur lengkap (misalnya,C:\Program Files\Amazon\DeadlineCloud\deadline.exe) untuk digunakan dalam tugas.

  2. Buat Direktori Checkpoint

    Buat direktori tempat file checkpoint akan disimpan:

    C:\> mkdir "path\to\checkpoint\directory"
  3. Buat Direktori Log

    Buat direktori untuk log tugas:

    C:\> mkdir "path\to\logs"
  4. Buat Pembungkus File Batch

    Buat file batch dengan konten berikut:

    C:\> notepad C:\path\to\deadline_sync.bat
    YOUR_PATH_TO_DEADLINE.EXE queue sync-output --profile deadline-downloader --farm-id YOUR_FARM_ID --queue-id YOUR_QUEUE_ID --storage-profile-id YOUR_PROFILE_ID --checkpoint-dir path\to\checkpoint\checkpoints > path\to\logs\deadline.log 2>&1
  5. Uji Berkas Batch

    Uji file batch secara manual:

    C:\> .\path\to\deadline_sync.bat

    Periksa file log telah dibuat:

    C:\> notepad path\to\logs\deadline_sync.log
  6. Periksa Layanan Penjadwal Tugas

    Pastikan layanan Penjadwal Tugas sedang berjalan:

    C:\> sc query "Schedule"

    Jika layanan tidak ada, coba nama alternatif:

    C:\> sc query "TaskScheduler" C:\> sc query "Task Scheduler"

    Jika tidak berjalan, mulai:

    C:\> sc start "Schedule"
  7. Buat Tugas Terjadwal

    Buat tugas untuk dijalankan setiap 5 menit.

    C:\> schtasks /create /tn "DeadlineOutputSync" /tr "C:\path\to\deadline_sync.bat" /sc minute /mo 5

    Rincian perintah:

    • /tn- Nama tugas

    • /tr- Tugas untuk menjalankan (file batch Anda)

    • /sc minute /mo 5- Jadwal: setiap 5 menit

  8. Verifikasi Pembuatan Tugas

    Periksa apakah tugas berhasil dibuat:

    schtasks /query /tn "DeadlineOutputSync" /v /fo LIST

    Mencari:

    • Tugas Untuk Dijalankan: Harus menunjukkan jalur file batch Anda

    • Waktu Jalankan Berikutnya: Harus menunjukkan waktu dalam 5 menit

  9. Uji Eksekusi Tugas

    Jalankan tugas secara manual untuk menguji:

    schtasks /run /tn "DeadlineOutputSync"

    Periksa status tugas:

    schtasks /query /tn "DeadlineOutputSync"
Verifikasi penyiapannya

Untuk memverifikasi penyiapan unduhan otomatis berhasil, selesaikan langkah-langkah berikut.

  1. Kirim pekerjaan tes baru.

  2. Tunggu satu interval penjadwal selesai, yang dalam hal ini adalah 5 menit.

  3. Verifikasi bahwa output baru diunduh secara otomatis.

Jika output tidak diunduh, periksa bagian Pemecahan masalah untuk log proses.

Memecahkan masalah unduhan otomatis

Jika Anda mengalami masalah dengan unduhan otomatis, periksa hal berikut:

Masalah Profil Penyimpanan

  • Kesalahan seperti [Errno 2] No such file or directory atau [Errno 13] Permission denied dalam file log dapat terkait dengan profil penyimpanan yang hilang atau salah dikonfigurasi.

  • Lihat Profil penyimpanan untuk informasi tentang cara mengatur profil penyimpanan Anda saat mesin pengunduh berbeda dari mesin pengirim.

  • Untuk unduhan mesin yang sama, coba bendera. --ignore-storage-profiles

Izin Direktori

  • Pastikan pengguna layanan penjadwal memiliki:

    • Read/write akses ke direktori pos pemeriksaan

    • Tulis akses ke direktori tujuan keluaran

  • Untuk Linux danmacOS, gunakan ls -la untuk memeriksa izin.

  • UntukWindows, tinjau pengaturan Keamanan di folder Properties.

Memeriksa Log Penjadwal

Linux
  1. Periksa apakah layanan cron sedang berjalan:

    # For systemd systems $ sudo systemctl status cron # or $ sudo systemctl status crond # Check if your user has cron job correctly configured $ crontab -l
  2. Lihat log eksekusi cron:

    # Check system logs for cron activity (most common locations) $ sudo tail -f /var/log/syslog | grep CRON $ sudo tail -f /var/log/cron.log | grep deadline # View recent cron logs $ sudo journalctl -u cron -f $ sudo journalctl -u crond -f # On some systems
  3. Periksa log pekerjaan cron spesifik Anda:

    # View the log file specified in your cron job $ tail -100f /path/to/logs/deadline_sync.log
  4. Cari eksekusi pekerjaan cron di log sistem:

    # Look for your specific cron job executions $ sudo grep "deadline.*incremental-output-download" /var/log/syslog # Check for cron job starts and completions $ sudo grep "$(whoami).*CMD.*deadline" /var/log/syslog
  5. Periksa pembaruan file pos pemeriksaan:

    # List checkpoint files with timestamps $ ls -la /path/to/checkpoint/directory/ # Check when checkpoint was last modified $ stat /path/to/checkpoint/directory/queue-*_download_checkpoint.json
  6. Periksa file log:

    $ ls -la /path/to/log/deadline_sync.log
macOS

Melihat Log Eksekusi Agen Peluncuran:

  1. Periksa apakah agen peluncuran sedang berjalan:

    $ sudo launchctl list | grep deadlinesync

    Output menunjukkan: PID Status Label (PID akan terjadi - saat tidak berjalan, yang normal untuk pekerjaan interval)

  2. Lihat status agen peluncuran terperinci:

    $ sudo launchctl print system/com.user.deadlinesync

    Ini menunjukkan riwayat eksekusi, kode keluar terakhir, jumlah proses, dan status saat ini.

  3. Lihat log eksekusi agen peluncuran:

    # View recent logs (last hour) log show --predicate 'subsystem contains "com.user.deadlinesync"' --last 1h # View logs from a specific time period log show --predicate 'subsystem contains "com.user.deadlinesync"' --start '2024-08-27 09:00:00'
  4. Jalankan paksa agen peluncuran untuk pengujian segera:

    $ sudo launchctl kickstart gui/$(id -u)/com.user.deadlinesync

    Ini segera memicu pekerjaan terlepas dari jadwalnya, berguna untuk pengujian.

  5. Periksa pembaruan file pos pemeriksaan:

    # List checkpoint files with timestamps $ ls -la /path/to/checkpoint/directory/
  6. Periksa file log:

    $ ls -la /path/to/log/deadline_sync.log
Windows
  1. Periksa apakah layanan Penjadwal Tugas sedang berjalan:

    C:\> sc query "Schedule"

    Jika layanan tidak ada, coba nama alternatif:

    C:\> sc query "TaskScheduler" C:\> sc query "Task Scheduler"
  2. Lihat tugas yang dijadwalkan:

    C:> schtasks /query /tn "DeadlineOutputSync"
  3. Periksa file log tugas Anda:

    # View the log file created by your batch script C:> notepad C:\path\to\logs\deadline_sync.log
  4. Periksa pembaruan file pos pemeriksaan:

    # List checkpoint files with timestamps C:> dir "C:\path\to\checkpoint\directory" /od